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

时间:2017-09-29 17:39:54

标签: php laravel-5

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

  

SQLSTATE [42S02]:未找到基表或视图:1146表'fyp.users'不存在(SQL:select count()作为来自用户的聚合,其中email = ********** )

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

'table' => 'admin',

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

编辑:那是Laravel 4.对于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
    ],
],

希望有所帮助。