2016-12-07 86 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

添加下面的方法,產生先前的網址在您的控制器,並覆蓋默認的一個插件按照您的控制器

在您的控制器

,你必須定義$this->validate方法請撥打以下方法並使用請求

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

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', ]); } –