将email
字段从数据库更改为user_email
时出现Laravel错误
Illuminate \ Database \ QueryException SQLSTATE [42S22]:找不到列: 1054'where子句'中的未知列'email'(SQL:select * from
ns_users
,其中
Schema::create('ns_users', function (Blueprint $table) {
$table->increments('user_id');
$table->boolean('active')->default(0);/*by default the user is not active*/
$table->integer('role')->default(0);/* role 0 means user and role 1 means admin!! */
$table->string('name');
$table->string('user_email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
有人知道我必须更改默认身份验证才能使用user_email
字段而不是email
吗?
答案 0 :(得分:3)
默认情况下,Laravel使用email
字段进行身份验证。如果您想对此进行自定义,则可以在username
上定义一个LoginController
方法:
public function username()
{
return 'user_email';
}
答案 1 :(得分:0)
Wed Mar 06 14:17:00 GMT 2019
Wed Mar 06 14:17:25 GMT 2019
为我工作
答案 2 :(得分:0)
如果任何人都使用try方法手动处理laravel auth。 您需要做的就是将要传递给try方法的关联数组中的键名'email'更改为所需的键名。
Auth::attempt(['user_email' => $email, 'password' => $password], $remember)