如何将默认表名称"users"更改为自定义名称

OTA*_*TAR 2 php laravel laravel-5.4

我想将默认表名更改users为其他名称lara_users.

搜索了几个资源,其中许多人说"你需要在config/auth.php文件中更改表名,如下:'table' => 'lara_users'.

在Laravel 5.4中,没有明确定义(至少对我而言)那个'table'键在哪里?我改变了:

...
'providers' => [

    'users' => [
       'driver' => 'database',
       'table' => 'lara_users',
    ],
],
...
Run Code Online (Sandbox Code Playgroud)

虽然,在那之后,当我尝试登录时,应用程序出现错误:( Undefined table: 7 ERROR: relation "users" does not exist我使用postgresql).

PS

我已经将表名更改为lara_usersin migrations,它可以正常工作并创建该表.

Pra*_*rve 6

如果要添加lara_所有表名,则可以通过在中添加前缀来添加名称database.php.如果你添加前缀它将添加到所有表,你不需要更改任何其他内容,laravel本身搜索具有此前缀的表.

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => 'lara_',
        'strict' => true,
        'engine' => null,
    ],
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用DB::table(''),它将使用雄辩的查询,然后您需要在所有查询中添加前缀.使用$prefix = \DB::getTablePrefix();前缀,使之动态的数据库查询.


mad*_*eny 5

好的。在用户迁移中将用户更改为lara_users。

现在您更改了默认表名称。转到用户模型 User.php 下

app目录,将其添加到User类中

 protected $table = 'lara_users';
Run Code Online (Sandbox Code Playgroud)

现在去 RegisterController.php 编辑电子邮件密钥:

 'email' => 'required|string|email|max:255|unique:users',
Run Code Online (Sandbox Code Playgroud)

对此

'email' => 'required|string|email|max:255|unique:lara_users',
Run Code Online (Sandbox Code Playgroud)

就是这样。