0

Routes ファイルが肥大化しすぎたため、いくつかのワイルドカードを使用しようとしています。写真とギャラリーのルートがあり、それらを「メディア」「サブルート」の下に配置することにしたとします。

Route::get('admin/media/(:any)/edit/(:num)', function($p) {
    dd($p);
});

予想どおり、「1」ではなく「 http://www.bossplaya.dev/admin/media/galleries/edit/1 」にアクセスすることで、ダイアンドダンプにより「ギャラリー」が得られます。

しかし、これ機能します:

Route::get('admin/media/galleries/edit/(:num)', function($p) {
    dd($p); // Returns "1"
});

このようなワイルドカードを使用する方法はありますか? これにより、多くの時間を節約でき、ルート ファイルがよりきれいになります。

何か案は?

4

1 に答える 1

1

URL に追加する各ワイルドカードはルートのパラメーターになるため、この例では$type「ギャラリー」に$idなり、「1」になります...

Route::get('admin/media/(:any)/edit/(:num)', function($type, $id) {
    dd(compact('type', 'id'));
});

が何であるかを知りたくない何らかの理由がある場合は、(:any)一致しない正規表現を使用できます。たとえば、次のようになります。

Route::get('admin/media/[^/]+/edit/(:num)', function($id) {
    dd(compact('id'));
});
于 2013-05-29T10:19:05.357 に答える