我想要将缺省表名users更改为另一个名称,比如lara_users。
搜索了几个资源,其中许多资源说“您需要在config/auth.php文件中更改表名,如下所示:'table' => 'lara_users'。
在Laravel 5.4中,没有明确定义(至少对我而言) 'table'密钥在哪里?我在这里进行了更改:
...
'providers' => [
'users' => [
'driver' => 'database',
'table' => 'lara_users',
],
],
...然而,在那之后,当我尝试登录时,应用程序拖出一个错误:Undefined table: 7 ERROR: relation "users" does not exist (我使用postgresql)。
附注:
我已经在migrations中将表名改为lara_users,它可以正常工作并成功创建该表。
发布于 2017-07-22 10:52:23
如果您想在所有的表名称中添加前缀,那么您可以通过在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,
],请注意,它将与雄辩查询一起工作如果您使用DB::table(''),那么您需要在所有查询中添加前缀。使用$prefix = \DB::getTablePrefix();作为前缀,使其对于数据库查询是动态的。
发布于 2017-07-22 12:15:00
好的。在用户迁移中将用户更改为lara_users。
现在,您更改了默认的表名。转到下的用户模型User.php
app目录,将其添加到User类中
protected $table = 'lara_users';现在转到RegisterController.php编辑电子邮件密钥:
'email' => 'required|string|email|max:255|unique:users',到这个
'email' => 'required|string|email|max:255|unique:lara_users',就这样。
发布于 2017-07-22 04:56:46
将此代码添加到auth.php中
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
'table' => 'lara_users',
],
],之后,运行artisan migrate命令。
如果您App\Users模式设置了$table变量,则将其更改为
protected $table = 'lara_users';https://stackoverflow.com/questions/45246397
复制相似问题