Laravel 4:无法为命名路由"login"生成URL,因为此路由不存在

seh*_*mel 3 laravel laravel-4

我在Laravel 4项目中创建了一个授权系统.我正在尝试使用auth"之前"过滤器.

在我的routes.php档案中,我有:

Route::get('viewer', array('before' => 'auth', function() {
    return View::make('lead_viewer');
}));

Route::get('login', 'LoginController');
Run Code Online (Sandbox Code Playgroud)

before过滤器在filters.php文件中调用此行:

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::route('login');
});
Run Code Online (Sandbox Code Playgroud)

我可以手动导航到我的登录路线.但是auth系统并没有让这种情况发生.我跑composer dump-autoload了几次,所以这不是问题.我在做什么,因为如果我手动执行,我实际上可以加载登录页面?

seh*_*mel 6

我明白了.Laravel正在寻找一条命名路线:我必须这样做:

Route::get('login', array('as' => 'login', function() {
    return View::make('login');
}));
Run Code Online (Sandbox Code Playgroud)

Laravel中一种有趣但不是非常直观的方法.但是,泰勒必须有这样的理由,我没有看到.