请问在laravel框架中,使用artisan make:auth生成登录注册功能只能通过邮箱登录,那么如何更改代码,使其能够既能用用户名也能用邮箱,还能用电话登录。看了相关文档,没有想出来解决办法。请问大神们知道如何更改么?
一定是在make:auth的基础上修改。
给出修改的思路也行。
请问在laravel框架中,使用artisan make:auth生成登录注册功能只能通过邮箱登录,那么如何更改代码,使其能够既能用用户名也能用邮箱,还能用电话登录。看了相关文档,没有想出来解决办法。请问大神们知道如何更改么?
一定是在make:auth的基础上修改。
给出修改的思路也行。
AuthenticatesUsers.php 里面的
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->loginUsername() => 'required', 'password' => 'required',
]);
}
你看上面 他只对用户名和密码做了必填的验证 至于emial类型并没做验证 所以看html代码
<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}">
看上面的type类型 email 你改成text就可以填写任何了 但是如果你想验证手机啥的需要自己写
我也不知道对不对 没去验证 也才刚开始学习 反正他就那么几个文件 你可以看他登录到底执行了哪些方法
2 回答1.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.1k 阅读
1 回答946 阅读
1 回答899 阅读
1 回答897 阅读
该问题已经解决,解决方案如下:
在AuthController控制器中,use那两个trait的下面,添加如下代码
此方法重写了引入的AuthenticatesAndRegistersUsers类中引入的AuthenticatesUsers类中的getCredentials方法,该方法作用是返回login方法中调用的的attempt方法验证信息所使用的$credentials数组变量。要注意,最终$field索引变量所对应的$login变量必须与数据库中users表中所需要的字段一致。