将经过身份验证的用户重定向回最初请求的URL或laravel中的默认URL

时间:2015-02-25 23:01:51

标签: laravel-4

我是laravel的新手,我希望获得以下结果,让我们说客人在搜索一个术语后进入结果页面,然后决定登录,我该如何让用户登录在laravel中保留相同的结果页面 我有以下代码 在filters.php中我有以下内容:

Route::filter('guest', function()
 {
    if (Auth::check()) return Redirect::to('/');
});

然后在用户控制器中我有以下

show login function

public function login()
{
    return View::make('users.login');
}

句柄登录功能     公共函数handleLogin()     {         $ data =仅输入:: ['电子邮件','密码']);

    if(Auth::attempt(['email' => $data['email'], 'password' => $data['password']])){
        return Redirect::to('/profile');            
    }
    return Redirect::route('login')->withInput();

}

现在登录后的默认页面会转到个人资料页面,但我希望用户在登录前回到他所在的任何地方。

任何帮助?谢谢

2 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西

return Redirect::back();

答案 1 :(得分:0)

在Laravel 4中,您可以使用Redirect::guestRedirect::intended轻松实现目标。

Redirect::guest在重定向到目标网址之前将当前网址放入会话中。

Redirect::intended检查会话中是否保存了任何网址,重定向到该网址或默认位置(如果不存在)。

在行动中,您的代码可以是:

if(Auth::attempt(['email' => $data['email'], 'password' => $data['password']])){
    return Redirect::guest('/profile');            
}

并在登录后

if (Auth::check()) return Redirect::intended();