在 laravel 中进行登录尝试时,我通常使用如下内容:
if (Auth::attempt(array('email' => $usernameinput, 'password' => $password), true))
{
// The user is being remembered...
}
基本上$usernameinput
将检查email
从我的桌子上。
我想用不同的方式来做,就像有email
, username
and password
在我的桌子上。$usernameinput
可以是email
or username
我的表中的字段。
我怎么能够Auth::attempt
条件如下:
(email==$usernameinput OR username==$usernameinput) AND password == $password
好吧,你可以简单地检查一下是否$usernameinput
匹配电子邮件模式,如果匹配,请使用email
字段,否则使用username
场地。这听起来很合理,因为数据库中确实不应该有任何与该模式不匹配的电子邮件。像这样的东西:
$field = filter_var($usernameinput, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
if (Auth::attempt([$field => $usernameinput, 'password' => $password], true)) {
// ...
}
另一种选择是延长Illuminate\Auth\Guard
添加所需的功能并将其设置为auth
组件,在新的服务提供商中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)