讨论数量:
目前原生Auth提供的是单字段登录。
其实实现多字段登录不难啊,username和email的格式不同,可以在controller里面判断一下,然后分别调用Auth登录即可:
Auth::attempt(['username' => $value , 'password' => $password]) || Auth::attempt(['email' => $value , 'password' => $password])
比较简单的方法
- 首先在客户端根据用户输入的账号格式,动态修改input的name属性的值为
username
或者email
- 修改
username()
这个方法为
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function username()
{
$request = request();
foreach (['email', 'username'] as $v) {
if ($request->exists($v)) {
return $v;
}
}
return 'email';
}
推荐文章: