【问题标题】:Filter doesn't work on Laravel 4过滤器在 Laravel 4 上不起作用
【发布时间】:2014-04-12 14:43:33
【问题描述】:

我无法让过滤器在 Laravel 4 中工作。

这是我的代码:

/**
* filters.php
**/
Route::filter('isAdmin', function()
{
    if (Auth::check())
    {
        if(Auth::user()->level == 'User')
            return Redirect::to('/');
    }
    return Redirect::to('/auth/login');

});  Route::when('admin/*', 'isAdmin');

/**
* routes.php
**/

Route::get('admin/home', 'AdminController@home'));
Route::get('admin', 'AdminController@home');

我不明白为什么这个过滤器不起作用。此过滤器在路由/admin/* 中被完全忽略。我希望只有登录的管理员才能看到管理面板。

【问题讨论】:

  • 我已将您的代码移到您的问题中,因此如果外部链接中断,它仍然可以阅读。如果您对以后的所有问题都这样做,那就太好了 - 谢谢。

标签: php laravel filter laravel-routing


【解决方案1】:

由于斜线,您的过滤器正在使用“admin/home”,但不适用于“admin”路由。为要过滤的两条路由编写此内容。

Route::when('admin*', 'isAdmin');

或更好

Route::group(array('prefix' => 'admin', 'before' => 'isAdmin'), function()
{
    Route::get('home', 'AdminController@home'));
    Route::get('/', 'AdminController@home');
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 2021-07-18
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2013-06-05
    相关资源
    最近更新 更多