1

我有一个尝试移植到 L4 的 L3 应用程序。在 L3 版本中,我的一条路线是

Route::get('/(:any)/(:all?)', etc...

这允许我处理任意数量的 URL 段,例如:

/contact_page
/store_category
/store_category/shirts_category
/store_category/shirts_category/specific_shirt_page
/an/arbitrary/number/of/nested/categories

但在 L4 中,我无法弄清楚如何模拟 (:all?)

下面的代码有效:

Route::get('/{arg1?}/{arg2?}/{arg3?}', function($arg1='home', $arg2, $arg3)
{
  //do something
});

所以我可以添加大量可选参数(比我认为在现实世界中使用时需要的更多)但这不是很优雅。

Laravel 4 中是否有某种方法可以定义一个可以响应任意数量的 URL 段的路由?

4

1 回答 1

11

您可以将模式条件添加到您的路线,例如:

Route::get('{any}/{args}', function($action, $args = null)
{
   // do something like return print_r(explode('/', $args), true);
})->where('args', '(.*)');
于 2013-01-19T19:56:04.343 回答