Laravel - 重定向到倒数第二个网址

时间:2014-04-09 14:57:25

标签: php redirect laravel laravel-4 overlay

是否可以在auth之后将用户重定向到倒数第二页?

为什么?
我在叠加层中打开登录。当验证抛出错误时,重定向为:

return Redirect::intended('?openOverlay=login')->with('error-login-noconfirm','1');  

当用户输入正确的logindata时,Redirect返回(),这意味着,他将被重定向到右侧页面但是打开Overlay。

当用户成功登录时,我需要摆脱覆盖,意味着,我可能需要将路由传递给登录方法,或类似的东西。

你知道吗?谢谢!

编辑:
登录代码:

    if ($validator->fails()) {
        return Redirect::intended('?openOverlay=login')
            ->withErrors($validator)
            ->withInput(Input::except('password'));
    } else {
        $user = User::where('email', Input::get('email'))->first();

        if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password'), 'confirmed' => 1))) {
            return Redirect::intended();
        } else {
            return Redirect::intended('?openOverlay=login')->with('error-login-noconfirm','1');
        }
    }

打算也没有工作。它将我重定向到我的/页面而不是" last"页。

1 个答案:

答案 0 :(得分:3)

你不必使用back()。登录过程以这种方式工作:

1)A'仍未登录'用户尝试浏览您的网站并点击路线:

Route::get('dashboard', 'DashboardController@dashboard');

2)但是被重定向到登录表单:

return Redirect::to('?openOverlay=login');

3)成功登录后,您必须使用Redirect::intended()将用户重定向到他/她首次尝试访问的网址:

if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
    // Login succeeded, redirect it to the intended url

    return Redirect::intended('home');
}
else
{
    /// Login failed, redirect back to login, so your user can try to login again

    return Redirect::back()->with('error-login-noconfirm','1');
}

您的用户将被重定向到'信息中心'和家庭'是一个后备路线,以防万一会话发生,并且没有更多的预定('仪表板')网址。

如果目标网址不是第一个访问的网址,您可以在会话中更改它:

$path = Session::put('url.intended', $the_actual_url_intended);