鍍金池/ 問答/PHP/ laravel 5.5 控制器中自定義表單驗證失敗

laravel 5.5 控制器中自定義表單驗證失敗

LoginController對vender中的登陸驗證進行重寫但是自定義表單驗證不起作用(注釋代碼),錯誤信息兩個都不起作用,只能改validate.php中的定義嗎?

表單驗證還沒有嘗試

順便抱下大腿 驗證碼規(guī)則怎么定義?我用的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;
    }
回答
編輯回答
夢一場

不要去到vendor目錄修改源碼,直接在App\Http\Auth\LoginController下重寫validateLogin方法即可,我的是laravel5.5版本不同可能會有略微差別。
至于驗證碼的,當(dāng)然力薦mews/captcha
laravel中使用起來簡直不要太簡單。(多余的代碼就不寫了)

$this->validate($request, [
    'captcha' => 'required|captcha',
]);
2018年4月30日 11:00
編輯回答
鐧簞噯

樓上正解,個人建議,laravel框架寫的比較開發(fā),很多方法都可以繼承重寫

2017年10月31日 17:00