2016-10-01 82 views
1

在我的應用程序中,我使用Laravel 5.3的默認身份驗證。我有兩個用戶可以登錄的地方,我想在登錄失敗的情況下只重定向到這兩個地方中的一個。換句話說,無論用戶登錄哪個視圖,如果他們提交了無效的憑據,他們將始終被重定向回到一個特定的視圖,而不是他們提交表單的任何視圖。在Laravel 5.1中,看起來這可以通過在登錄控制器中包含$loginPath變量來實現。在Laravel 5.3他們似乎採取了該選項的文件,所以我不知道如何解決這個問題了。Laravel 5.3 - 失敗的登錄嘗試重定向

任何想法和/或建議,非常感謝。謝謝!

回答

4

編輯:我誤解了您的原始問題。這已更新。

如果您需要定製這一點,你可以這樣做:

打開App\Http\Controllers\Auth\LoginController(如per the docs,這一切都被php artian make:auth命令大公我假設你使用的生成)和補充一點:

/** 
* Get the failed login response instance. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
protected function sendFailedLoginResponse(Request $request) 
{ 
    return redirect()->to('/the_redirect_location') 
     ->withInput($request->only($this->username(), 'remember')) 
     ->withErrors([ 
      $this->username() => Lang::get('auth.failed'), 
     ]); 
} 

這將覆蓋LoginController使用的\Illuminate\Foundation\Auth\AuthenticatesUsers特徵中包含的相同方法。 redirect()->to('/the_redirect_location')是我改變的部分。最初是這樣的:redirect()->back()

如果您選擇使用此方法時,一定要在LoginController頂部補充一點:

use Lang; 
use Illuminate\Http\Request; 
+1

謝謝,這也是對我的作品在Laravel 5.4。 – Nebster