Authentication Laravel 4身份验证筛选器:无法为命名路由生成URL,因为该路由不存在

Authentication Laravel 4身份验证筛选器:无法为命名路由生成URL,因为该路由不存在,authentication,laravel,laravel-4,Authentication,Laravel,Laravel 4,我试图限制我命名为Artists(由ArtistsController运行)的资源。我尝试直接使用控制器中的构造函数执行此操作: public function __construct() { $this->beforeFilter('auth', array('except' => array())); } 在我的过滤器中,我有: Route::filter('auth', function() { if (Auth::guest()) retu

我试图限制我命名为Artists(由ArtistsController运行)的资源。我尝试直接使用控制器中的构造函数执行此操作:

 public function __construct()
    {
    $this->beforeFilter('auth', array('except' => array()));
    }
在我的过滤器中,我有:

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::route('fans/landing');
});
Route::get('fans/landing', array('uses' => 'FansController@getIndex'))->before('guest');
在我的路线中,我有:

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::route('fans/landing');
});
Route::get('fans/landing', array('uses' => 'FansController@getIndex'))->before('guest');
但是,当我运行此操作(尝试转到其中一个资源页)时,会出现以下错误:

Unable to generate a URL for the named route "fans/landing" as such route does not exist.
这很奇怪,因为当我删除construct函数时,fans/登录页的加载很好。此外,当我有以下情况时,它会重定向另一个页面(不是资源的一部分),对粉丝/登录很好:

Route::get('/fans/home', array('uses' => 'FansController@getHome'))->before('auth');
改变

Route::get('fans/landing', array('uses' => 'FansController@getIndex'))->before('guest');

改变

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::route('fans/landing');
});