在auth过滤器之前使用Laravel的问题?

时间:2014-06-03 18:32:42

标签: php laravel

我在laravel中使用过滤器时遇到问题。 这是一段代码

Route::get('admin/login', function()
{
return View::make('admin.login');
});

Route::get('admin/logout', function()
{
    Auth::logout();
    return Redirect::to('admin/login');
});

Route::post('admin/login', function()
{
$userdata = array('username' => Input::get('username'),
                  'password' => Input::get('password'));

if (Auth::attempt($userdata))
{
    return Redirect::to('admin');
}
else
{
    return Redirect::to('admin/login')->with('login_errors',true);
}
});

Route::get('admin', array('before' => 'auth', function() {
    return Redirect::to('admin');
}));

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

问题是当我打开/管理员时,它将我重定向到admin / login(这很好)。 现在,如果我输入正确的用户名和密码,它应该带我到/ admin页面,但它再次将我重定向回管理员/登录页面。 我想每当我想把它重定向到/ admin时,(在auth之前)过滤器就会运行,它会把我带回admin / login。

请帮助

1 个答案:

答案 0 :(得分:0)

据我说,你在这里有一个重定向循环:

Route::get('admin', array('before' => 'auth', function() {
    return Redirect::to('admin');
}));

如果auth过滤器通过但您尝试重定向到管理页面,但这是相同的路线。