2015-07-01 14 views
5

我有一个登录表单,在表单提交后(如果验证无误),浏览器在登录前应重定向至。目前我重新导向,并且总是进入相同的登录页面。 我的routes.php文件是这样的:Laravel登录后重定向至以前版本

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

而且我里面do_login重定向()是

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

如果我在里面/列表页面,然后打开登录并正确填写表格我再次重定向到/登录不是很奇怪吗?非常感谢

+0

该响应完全有效。从页面提交表单后,'back()'实际上会将您重定向到同一页面。做一个'返回重定向('网址去这里')' – Andrew

+0

该死的,所以每当我进入登录页面,我必须存储在$ _SESSION引用? –

+0

你的意思是你想重定向到预定的路线? – DavidDomain

回答

8

您好,如果您使用Laravel 5.1,你可以重定向到前一页的方式

return back(); 

,或者您可以使用会话,其中Laravel保存以前的页面

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

认证/ LoginController中protected $redirectTo = '/home';更改'/ home''/ loginin'例如,并创建一个看起来像这样的新路线

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

,或者你可以把这个在控制器往返航线

,并在页面控制器的每个函数的代码调用它

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