【问题标题】:In Laravel: How to apply many filters to an entire set of routes based on their URI?在 Laravel 中:如何根据 URI 将多个过滤器应用于一整套路由?
【发布时间】:2015-07-30 02:47:47
【问题描述】:

在 Laravel 框架中:文档 (route filter section) 说:

您还可以指定一个过滤器根据其 URI 应用于整个路由集。

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

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

如果我有多个过滤器并且想根据它们的 URI 将它们全部应用到一整套路由上怎么办?我应该这样应用它们:

Route::when('admin/*', 'filter_1');
Route::when('admin/*', 'filter_2');
Route::when('admin/*', 'filter_3');

或者我可以将它们全部放在一个数组中并像这样应用它们:

Route::when('admin/*', array('filter_1', 'filter_2', 'filter_3'));

【问题讨论】:

  • 您的问题可以使用一些问号。
  • 你不能在你的情况下使用Route::group吗?然后使用教皇将过滤器应用于该集合?
  • 两种方案都试一下,你自己回答。我很确定第一个会起作用。
  • @Mr.Blackus 第一个解决方案效果很好(来自文档),我的问题是:第二个解决方案是否与第一个解决方案完全一样?

标签: php laravel-4 routes


【解决方案1】:

尝试后发现使用

Route::when('admin/*', array('filter_1', 'filter_2', 'filter_3'));

将执行相同的结果,所以是的,我可以使用上面的行而不是接下来的 3 行

Route::when('admin/*', 'filter_1');
Route::when('admin/*', 'filter_2');
Route::when('admin/*', 'filter_3');

并注意过滤器将分别应用,这意味着将首先应用filter_1,如果一切正常,将应用filter_2,依此类推。

【讨论】:

    猜你喜欢
    • 2014-06-07
    • 2015-01-21
    • 2015-01-29
    • 2016-01-21
    • 1970-01-01
    • 2015-01-26
    • 2018-09-11
    • 2012-11-19
    • 2016-07-28
    相关资源
    最近更新 更多