繁体   English   中英

SQLSTATE [42S02]:找不到基表或视图

[英]SQLSTATE[42S02]: Base table or view not found

我正在使用Laravel Auth将用户注册并登录到相应的仪表板。 I am using admin as my user 我为管理员创建了迁移,但是当我尝试注册我的管理员错误时, Table or view not found并且Table or view not found的表是我删除的内置表用户,因为我没有使用该表。 我必须使用管理表,请帮助我如何删除此错误。

SQLSTATE [42S02]:找不到基表或视图:1146表'fyp.users'不存在(SQL:从电子邮件中为用户汇总count(),其中电子邮件= **********)

我可能在下面提到了一些可能性:

1)在config / auth.php中,将用户模型更改为您的公司类别。

   'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Admin::class,
    ],

2)在Admin类中,定义可填充字段和隐藏字段:

class Admin extends Authenticatable {

protected $fillable = [
    'name', 'email', 'password',
];

protected $hidden = [
    'password', 'remember_token',
];
}

3)不要忘记在registerContoller中更改验证

'email' => 'required|string|email|max:255|unique:admins',

4)清除配置缓存或重建它:

 php artisan config:clear  
 php artisan config:cache

参考文献:

https://laracasts.com/discuss/channels/general-discussion/change-users-table-name

https://laracasts.com/discuss/channels/general-discussion/changing-users-table-name-52

编辑app / config / auth.php更改表。

'table' => 'admin',

资料来源: http : //laravel-recipes.com/recipes/12/changing-your-authentication-table

编辑:那是为Laravel4。对于Laravel 5,这取决于您使用的驱动程序。 如果您使用的是Eloquent,则可以在以下config / auth.php文件中更改默认模型:

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class, // Here you can change the users model
    ],
],

或者您可以在App\\User模型中指定正确的表格。

如果您使用的是数据库驱动程序,则可以用相同的方式更改表的名称:

'providers' => [
    'users' => [
        'driver' => 'database',
        'table' => 'users',  // Here you can change the database table
    ],
],

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM