Laravel,在过滤器中调用过滤器

时间:2014-07-31 14:47:59

标签: php laravel filter routing

如何使用laravel调用过滤器中的过滤器?

我有这个过滤器:

Route::filter('auth', function()
{
    if (Auth::guest())
    {
        if (Request::ajax())
        {
            return Response::make('Unauthorized', 401);
        }
        else
        {
            return Redirect::guest('login');
        }
    }
});

现在我创建另一个名为admin的过滤器,我希望在此调用auth过滤器:

Route::filter('admin', function(){
    #call auth filter

    #code    
});

这可能吗?

2 个答案:

答案 0 :(得分:5)

callRouteFilter()中使用Illuminate\Routing\RouteFiltererInterface方法作为@Dwight建议:

Route::filter('admin', function ($route, $request) {
    if ($r = Route::callRouteFilter('auth', array(), $route, $request)) {
        return $r;
    }
});

答案 1 :(得分:0)

尝试使用callRouteFilter() method

Route::filter('admin', function()
{
    Route::callRouteFilter('auth');
});