我正在创建一个允许用户使用自定义过滤器的软件包。
到目前为止,我有一个名为:
的方法public function testFilter(){
return false;
}
在我的过滤器文件中,在我的主应用程序中,我有:
Route::filter('test.test', MyPackage::testFilter());
在我的路线中,在我的主应用程序中,我有:
'before'=>'test.test'
我的问题是,我如何进行过滤,我做了一个返回false以尝试使过滤器失败,我是否需要其他东西,比如app abort?
答案 0 :(得分:1)
根据Laravel过滤器文档
如果过滤器返回响应,则该响应被视为对请求的响应,并且路由将不会执行。路线上的任何后续过滤器也会被取消。
这意味着您必须返回Response
才能取消您的路线。
当过滤器失败时,您可能会向访问者显示另一个视图,这可能更符合逻辑,这就是Laravel正在尝试做的事情。
您可以使用App::abort()
或App::abort(404)
(带有错误代码)来显示错误页面。