0

email当我将字段从数据库更改为时,Laravel 错误user_email

Illuminate\Database\QueryException SQLSTATE[42S22]: Column not found: 1054 Unknown column 'email' in 'where clause' (SQL: select * from ns_userswhere email= admin@yahoo.com limit 1)

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

4

3 回答 3

7

默认情况下,Laravel 使用该email字段进行身份验证。如果你想自定义这个,你可以username在你的LoginController

public function username()
{
    return 'user_email';
}
于 2019-03-06T08:33:44.613 回答
1
public function getEmailAttribute()
    {
        return $this->user_email;
    }

为我工作

于 2019-03-06T09:36:24.917 回答
1

如果你们中的任何人使用尝试方法手动处理 laravel 身份验证。您需要做的就是将键名“电子邮件”更改为您在传递给尝试方法的关联数组中所需的名称。

Auth::attempt(['user_email' => $email, 'password' => $password], $remember)
于 2020-01-02T07:12:09.053 回答