自定义过滤器 - 如何使它们失败?

时间:2014-08-18 09:48:23

标签: laravel laravel-4

我正在创建一个允许用户使用自定义过滤器的软件包。

到目前为止,我有一个名为:

的方法
public function testFilter(){


    return false;

}

在我的过滤器文件中,在我的主应用程序中,我有:

Route::filter('test.test', MyPackage::testFilter());

在我的路线中,在我的主应用程序中,我有:

'before'=>'test.test'

我的问题是,我如何进行过滤,我做了一个返回false以尝试使过滤器失败,我是否需要其他东西,比如app abort?

1 个答案:

答案 0 :(得分:1)

根据Laravel过滤器文档

  

如果过滤器返回响应,则该响应被视为对请求的响应,并且路由将不会执行。路线上的任何后续过滤器也会被取消。

这意味着您必须返回Response才能取消您的路线。

当过滤器失败时,您可能会向访问者显示另一个视图,这可能更符合逻辑,这就是Laravel正在尝试做的事情。

您可以使用App::abort()App::abort(404)(带有错误代码)来显示错误页面。