Laravelのネストされたカテゴリと単一のアイテムを持つ電子商取引のようなルーティングを構築しようとしていますが、これはかなり効果的ですが大きな例外があります。Laravelの動的ルートの問題
これは私のルート・ファイルの重要な部分である:
Route::get('/', '[email protected]')->name('Home');
Route::get('/{category}', '[email protected]')->where('category', '.+')->name('Category');
Route::get('/{slug}/{item_id?}', '[email protected]')->name('Item');
あなたが見ることができるように、カテゴリとアイテムのためのロジックは、2つの異なるコントローラに分離されています。
カテゴリのものはwww.page.com/category
またはwww.page.com/category/subcategory
、さらにはwww.page.com/category/subcategory/subsubcategory
のようなURLパターンでうまく機能します。
しかし、www.page.com/item-slug
またはwww.page.com/item-slug/12345
のアイテムを呼び出そうとすると、スクリプトは常にカテゴリルートを使用します。しかし、成功しません...
...
public function getRouteKeyName()
{
return 'slug';
}
:私の項目のモデルでは
は、私はまた、ルートキー名を上書きしました。
希望、私を助けることができますか、またはこれまで同様の問題があった。
いくつのカテゴリがありますか?カテゴリの数が非常に限られている場合は、正規表現パターンを使用してカテゴリに一致させることができます。 –
各カテゴリに応じて、1から5までの子カテゴリがあります。しかし、カテゴリのルーティングは問題ありません。私は、なぜアイテムルーティングがカテゴリパターンを使用するのか不思議です。 –
カテゴリregexpパターン。+は任意の文字の組み合わせに一致するので、カテゴリの代わりにアイテムにルーティングする必要があることをルータに伝えるのは誰ですか? – Benni