laravel 5.5 控制器中自定义表单验证失败

LoginController对vender中的登陆验证进行重写但是自定义表单验证不起作用(注释代码),错误信息两个都不起作用,只能改validate.php中的定义吗?

表单验证还没有尝试

顺便抱下大腿 验证码规则怎么定义?我用的accepted

谢谢

    protected function validateLogin(Request $request)
    {
        $messages = [
            'email.required'     => '邮箱不能为空',
            'password.required'  => '密码不能为空',
            'captcha.required'   => '验证码验证失败',
        ];

//        $validator = Validator::make($request->all(), [
//            $this->username() => 'required|string',
//            'password'        => 'required|string',
//            'captcha'         => 'required|accepted',
//        ], $messages);

        $this->validate($request, [
            $this->username() => 'required|string',
            'password'        => 'required|string',
            'captcha'         => 'required|accepted',
        ]);

        exit;
    }
阅读 3.9k
2 个回答

不要去到vendor目录修改源码,直接在App\Http\Auth\LoginController下重写validateLogin方法即可,我的是laravel5.5版本不同可能会有略微差别。
至于验证码的,当然力荐mews/captcha
laravel中使用起来简直不要太简单。(多余的代码就不写了)

$this->validate($request, [
    'captcha' => 'required|captcha',
]);

楼上正解,个人建议,laravel框架写的比较开发,很多方法都可以继承重写

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题