我试图限制一个名为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');
然而,当我运行这个(试图转到其中一个资源页面)时,我会得到以下错误:
Unable to generate a URL for the named route "fans/landing" as such route does not exist.
这很奇怪,因为当我删除构造函数时,风扇/登录页加载良好。此外,它重定向另一个页面(不是资源的一部分),对粉丝/着陆很好,当我有:
Route::get('/fans/home', array('uses' => 'FansController@getHome'))->before('auth');
更改
Route::get('fans/landing', array('uses' => 'FansController@getIndex'))->before('guest');
至
Route::get('fans/landing', array('as' => 'fans.landing', 'uses' => 'FansController@getIndex'))->before('guest');
并更改
Route::filter('auth', function()
{
if (Auth::guest()) return Redirect::route('fans/landing');
});
至
Route::filter('auth', function()
{
if (Auth::guest()) return Redirect::route('fans.landing');
});