【发布时间】:2014-09-23 13:57:39
【问题描述】:
如何使用 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
});
有可能吗?
【问题讨论】:
-
你为什么要这样做?您是否考虑过以与身份验证过滤器相同的方式附加该过滤器?
-
我知道这个解决方案,但对我的实现来说不是最好的......因为我有很多过滤器需要由其他过滤器调用,有时我需要通过传递参数来禁用它... PS对不起我的英语不好
-
对于高级过滤,您可能希望使用类而不是闭包。由于过滤器类是从应用程序 IoC 容器中解析出来的,因此您将能够在这些过滤器中利用依赖注入来提高可测试性。 laravel.com/docs/routing#route-filters 在部分底部
-
你想做什么?如果您的代码被一堆不同的过滤器调用,请尝试编写一个库类。如果您想调用一堆不同的过滤器,最好将它们链接在一起路由或使用@delmadord 的过滤器类建议。如果你设置了一堆相互关联的过滤器,其中 A 调用 B,B 调用 C 等等,看起来你会面临很多痛苦。依赖关系将很难维护。
标签: php laravel filter routing