2015-07-01 25 views
5

Ich habe ein Login-Formular und nach der Einreichung des Formulars (wenn die Validierung in Ordnung ist) sollte der Browser auf die letzte Seite vor dem Login umleiten. Zurzeit leite ich zurück und ich bekomme immer auf die gleiche Login-Seite. Mein routes.php ist so etwas wie dieses:Laravel Redirect nach Zurück nach dem Login

Route::get('/', '[email protected]'); 
Route::get('/list','[email protected]'); 
Route::get('/login','[email protected]'); 
Route::post('/login','[email protected]_login'); 

Und meine Redirection innerhalb do_login() ist

if(Login_is_valid()) 
{ 
    return Redirect::back(); 
} 

Wenn ich innen/Liste Seite bin und öffnen Sie dann Anmelden und füllen Sie das Formular korrekt I bin nochmal auf/login umgeleitet, ist das nicht komisch? Vielen Dank

+0

Die Antwort ist absolut gültig. Nach dem Absenden eines Formulars von einer Seite würde die 'back()' Sie auf die gleiche Seite umleiten. Tun Sie eine 'Return Redirect ('URL geht hier')' – Andrew

+0

Verdammt, also, wann immer ich Login-Seite muss ich in $ _SESSION der Referer speichern? –

+0

Meinst du, du willst auf die beabsichtigte Route umleiten? – DavidDomain

Antwort

8

Hallo, wenn Sie 5.1 Laravel verwenden, können Sie zur vorherigen Seite weiter Weg

return back(); 

umleiten oder Sie können Session verwenden, wo Laravel vorherige Seite speichern

return redirect(Session::get('_previous')['url']); 
0

in Auth/LoginController es gibt protected $redirectTo = '/home'; ändern '/ home' bis '/ loginin' zum Beispiel, und erstellen Sie eine neue Route, die wie folgt aussehen

Route::get('/loginin', function() 
{ 
     $page = '/' . session()->get('page'); 
     if($page != '') 
     { 
      session()->put('page', ''); 
      return redirect($page); 
     } 
     else 
     { 
      return redirect('/home'); 
     } 
}); 

oder Sie können dies in einem Controller setzen und aus dem Weg nennen

und in jeder Funktion in der Seiten-Controller diesen Code

session->put('page','/name_of_the_page'); 
Verwandte Themen