Laravel 4:登录后重定向用户

时间:2014-05-21 12:44:23

标签: php laravel laravel-4

我有不允许访客的页面,所以如果访客访问它会自动重定向到登录页面,

问题是,成功登录后是否有任何简单的方法(包含在Laravel中)将他返回到第一页?

我知道我可以在第一次重定向中使用with():

Redirect::action('UserController@login')->with('url', $_SERVER['REQUEST_URI']);
or
Redirect::action('UserController@login')->withUrl($_SERVER['REQUEST_URI']);

然后在登录页面中存储并使用它,

但是Laravel已经内置了一些东西,

感谢,

2 个答案:

答案 0 :(得分:5)

是的,当您的用户首次进入您的网站时,Laravel会将该条目页存储在会话中,因此,一旦登录成功,您就可以:

return Redirect::intended();

请注意,这可能仅在继续使用

时才有效
return Redirect::guest('login');

在过滤后的路线中。这是原始的Laravel代码(filters.php),它提供了这个:

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::guest('login');
});

您还可以使用以下方式设置默认页面(以防目标不可用):

return Redirect::intended('dashboard');

您可以使用Session设置新的原始内容来更改原始内容:

Session::put('url.intended', $newUrl);

答案 1 :(得分:0)

正如Antonio的答案所述,你可以使用:

return Redirect::intended();

它会将用户重定向到最初要去的页面,但是你可以传递一个可选的'defualt'参数,这样如果他们在没有预定位置的登录页面登录,它会将它们重定向到默认值。

i.e. return Redirect::intended('dashboard');