首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将默认表名`users`改为自定义名称

如何将默认表名`users`改为自定义名称
EN

Stack Overflow用户
提问于 2017-07-22 04:41:00
回答 3查看 1.7K关注 0票数 2

我想要将缺省表名users更改为另一个名称,比如lara_users

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

在Laravel 5.4中,没有明确定义(至少对我而言) 'table'密钥在哪里?我在这里进行了更改:

代码语言:javascript
复制
...
'providers' => [

    'users' => [
       'driver' => 'database',
       'table' => 'lara_users',
    ],
],
...

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

附注:

我已经在migrations中将表名改为lara_users,它可以正常工作并成功创建该表。

EN

回答 3

Stack Overflow用户

发布于 2017-07-22 10:52:23

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

代码语言:javascript
复制
    '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();作为前缀,使其对于数据库查询是动态的。

票数 7
EN

Stack Overflow用户

发布于 2017-07-22 12:15:00

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

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

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

代码语言:javascript
复制
 protected $table = 'lara_users';

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

代码语言:javascript
复制
 'email' => 'required|string|email|max:255|unique:users',

到这个

代码语言:javascript
复制
'email' => 'required|string|email|max:255|unique:lara_users',

就这样。

票数 5
EN

Stack Overflow用户

发布于 2017-07-22 04:56:46

将此代码添加到auth.php

代码语言:javascript
复制
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
        'table' => 'lara_users',
    ],
],

之后,运行artisan migrate命令。

如果您App\Users模式设置了$table变量,则将其更改为

代码语言:javascript
复制
protected $table = 'lara_users';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45246397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档