如果已登录,我正尝试将索引页面路由到其他位置,但即使我的身份验证系统正常工作,它也不会重定向到我预期的位置即getLogged,而是始终重定向到getIndex,无论我是否登录
Route::filter('auth', function()
{
if (!Sentry::check()) return Redirect::to('/');
});
Route::group(array('before' => 'auth'), function() {
Route::get('/', array('uses' => 'MyController@getLogged'));
});
Route::get('/', array('before' => 'detectLang', 'uses' => 'MyController@getIndex'));
我测试过以确保我的身份验证通过更改
来工作Route::group(array('before' => 'auth'), function() {
Route::get('/', array('uses' => 'MyController@getLogged'));
});
到
Route::group(array('before' => 'auth'), function() {
Route::get('/dash', array('uses' => 'MyController@getLogged'));
});
并且在我登录时我只能访问/破坏,这就是为什么我的索引路由不起作用?
答案 0 :(得分:1)
你两次声明相同的路线,它将无法正常工作。要实现此功能,请添加一个auth
过滤器,而不是检查用户是否未连接,而不是添加guest
过滤器,检查是否 是即可。像这样:
Route::filter('guest', function () {
if (Sentry::check()) return Redirect::route('logged');
});
然后,按照以下方式设置您的路线:
Route::get('/', array(
'as' => 'home',
'uses' => 'MyController@getIndex',
'before' => 'guest'
));
Route::get('/logged', array(
'as' => 'logged',
'uses' => 'MyController@getLogged',
'before' => 'auth|detectLang'
));
注意: as
键为您的路线指定了名称,因此您可以在Redirect::route
或URL::route
方法上使用它。