我在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。
请帮助
答案 0 :(得分:0)
据我说,你在这里有一个重定向循环:
Route::get('admin', array('before' => 'auth', function() {
return Redirect::to('admin');
}));
如果auth
过滤器通过但您尝试重定向到管理页面,但这是相同的路线。