1

L4 に移植しようとしている L3 アプリケーションがあります。L3 バージョンでは、私のルートの 1 つが

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 セグメントに応答できる Route を定義する方法はありますか?

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 に答える