2016-12-07 13 views
0

インデックスページからユーザーを登録しようとしていますが、バリデータが失敗した場合は、登録ページにリダイレクトします。laravel 5.3でバリデーターが失敗したときにspeceficルートにリダイレクトする方法は?

私はこの問題を解決するのに疲れています。 Illuminate/Foundation/Validation/ValidatesRequests.phpページをカスタマイズすることはできません。ここで

はコード

protected function getRedirectUrl() { 
    return route('register'); 
} 
protected function validator(array $data) { 
    $this->getRedirectUrl(); 
    return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|min:6|confirmed', ]); 
} 

答えて

1

があなたのコントローラで以前のURLを生成する以下のメソッドを追加し、あなたが$this->validateを定義しているあなたのコントローラであなたのコントローラ

のメソッドを次のデフォルト1アドオンを無効にあり下記のメソッドを定義してリクエストしてください。

use Illuminate\Http\Request; // add at the top 

protected function getRedirectUrl() { 
    return route('register'); 
} 

protected function validator(array $data) { 
    return $this->validate(request(), [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|min:6|confirmed', ]); 
} 

public function register(Request $request) 
{ 
    $this->validator($request->all()); 

    event(new Registered($user = $this->create($request->all()))); 

    $this->guard()->login($user); 

    return $this->registered($request, $user) 
     ?: redirect($this->redirectPath()); 
} 
+0

申し訳ありませんが、動作しません。 –

+0

このメソッドをどこに配置しましたか、コントローラコードを表示できますか? –

+0

保護された関数getRedirectUrl() { 戻るルート( 'register'); }保護機能バリ(配列$データ) { の$ this - > getRedirectUrl(); 戻り値Validator :: make($ data、[ 'name' => '必須| max:255'、 'email' => '必須| email | max:255 | unique:users'、 'パスワード' => '必須|分:6 |確認済'、 ]); } –

関連する問題