前言
官方默认生成的登录模式使用的是邮箱登录,虽然可以修改
username
来更换登录字段,但是,我总觉的这样很麻烦,所以加了一个多字段登录。 之前总是尝试动态修改username
的值,这种方法不值得推荐,所以我修改了一些代码
首先 ,修改前端字段值,将 email
修改为 account
(自取)
打开 Illuminate\Foundation\Auth\AuthenticatesUsers
可以看到 login
方法
也可通过 php artisan route:list
查看登录 路由方法
修改 验证 字段
$this->validate($request, [ 'account' => 'required|string', 'password' => 'required|string', ],[ 'account.required' => '用户名或者邮箱不能为空' ]);
validate 可以添加三个值,第一个是参数,第二个是规则,第三个是提示错误信息
修改
attemptLogin
方法protected function attemptLogin(Request $request) { $field = filter_var($request->account,FILTER_VALIDATE_EMAIL) ? 'email' : 'name'; $request->merge([$field => $request->account]); return $this->guard()->attempt( $request->only($field , 'password'), $request->filled('remember') ); }
filter_var
过滤器, 返回一个布尔值
- 修改
username
为account
对应的是前端的表单字段
本文由 邓尘锋 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: May 4, 2019 at 11:39 am