Php 无法让哨兵过滤器在Laravel中正常工作

Php 无法让哨兵过滤器在Laravel中正常工作,php,laravel,cartalyst-sentry,Php,Laravel,Cartalyst Sentry,我仍然习惯哨兵,但如果我是对的,我做的事情是对的 问题是,当我对路由应用过滤器时,它并没有按照我希望的方式工作。它应该检查用户是否已登录,如果未登录,则将其重定向到登录页面 我登录用户的方式: public function postLogin() { $credentials = array( 'username' => $this->input->get('email_or_username'), 'password' => $

我仍然习惯哨兵,但如果我是对的,我做的事情是对的

问题是,当我对路由应用过滤器时,它并没有按照我希望的方式工作。它应该检查用户是否已登录,如果未登录,则将其重定向到登录页面

我登录用户的方式:

public function postLogin()
{
    $credentials = array(
        'username' => $this->input->get('email_or_username'),
        'password' => $this->input->get('password')
    );
    try
    {
        $user = $this->sentry->authenticate($credentials, false);
        if ($user)
        {
            return $this->redirect->route('user.dashboard.index');
        }
    }
    catch(\Exception $e)
    {
        return $this->redirect->route('login')->withErrors(array('login' => $e->getMessage()));
    }
}
应该可以吧?接下来,我得到了我的路由(我只是将其分组以测试此特定路由资源上的筛选器):

最后是要检查用户的过滤器,如果用户未登录则重定向:

Route::filter('Sentry', function()
{
    if (!Sentry::check()){
        return Redirect::route('login');
    }
});

我已经被这件事困扰了好几天了,我请其他很多人来看看,他们都说:“好吧,这很奇怪……”。所以,我希望这里的人能给我一些建议。

有什么问题吗?它是否无法登录用户?或者筛选器无法重定向未经身份验证的用户?还是别的什么?请进一步澄清你的问题。
Route::filter('Sentry', function()
{
    if (!Sentry::check()){
        return Redirect::route('login');
    }
});