【问题标题】:Laravel 4 Auth Filter: Unable to generate a URL for the named route as such route does not existLaravel 4 Auth Filter:无法为命名路由生成 URL,因为这样的路由不存在
【发布时间】:2013-07-07 21:24:05
【问题描述】:

我正在尝试限制我命名为 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');

【问题讨论】:

    标签: authentication laravel laravel-4


    【解决方案1】:

    改变

    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');
    });
    

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 2014-12-06
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 2013-06-25
      • 2016-11-03
      • 1970-01-01
      • 2018-12-15
      相关资源
      最近更新 更多