我的代码是这样的:
public function postLogin(Request $request)
{
$this->validate($request, [
'user_name' => 'required|user_name', 'password' => 'required',
]);
$credentials = $request->only('user_name', 'password');
if ($this->auth->attempt($credentials, $request->has('remember')))
{
return redirect($this->redirectPath());
}
return redirect($this->loginPath())
->withInput($request->only('user_name', 'remember'))
->withErrors([
'user_name' => $this->getFailedLoginMessage(),
]);
}
当我点击按钮登录时,会出现错误消息:
BadMethodCallException in Validator.php line 2615: Method [validateUserName] does not exist.
谢谢
答案 0 :(得分:3)
我认为你想要实现的是这个
$this->validate($request, [
'user_name' => 'required',
'password' => 'required',
]);
编辑:所以您尝试使用用户名/密码组合而不是电子邮件/密码组合进行登录?
将此添加到您的Controller / Auth / AuthController.php
protected $username = 'user_name';
但您必须将postLogin方法切换回
$this->validate($request, [
$this->loginUsername() => 'required', 'password' => 'required',
]);
答案 1 :(得分:0)
没有验证规则user_name
。
除非你扩展验证器并自己添加验证器,否则它不存在。
可用规则如下:
Laravel 5.0 Docs - Validation - Available Rules
email
适用于您的规则,因为email
是您可以使用的可用验证规则。