【发布时间】:2019-02-16 16:14:42
【问题描述】:
Laravel 框架 5.6.38
我正在尝试将默认用户名身份验证检查从“电子邮件”更改为“ID”, 所以我将 username() 方法放在用户模型文件中以覆盖默认的用户名方法
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password','id'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function username()
{
return 'id';
}
}
它不适合我。除非我从 laravel 供应商文件中更改它 Illuminate\Foundation\Auth\AuthenticatesUsers.php
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function username()
{
return 'kocid';
}
登录现在可以工作,但是当我运行 composer update 时,文件返回到默认值,所以我需要一个解决方案来使用用户模型成功覆盖此方法。
【问题讨论】:
标签: laravel authentication laravel-5