Codeigniter で複数レベルのサブカテゴリを操作する最もスマートなソリューションは何ですか? 旅行代理店向けに旅行オファーを掲載する Web サイトを作成したいと考えています。構造は次のようになります。
- Cat1
- Cat2
--- Subcat1
--- Subcat2
------ Subcat1
--------- Subcat1
--------- Subcat2
------------ Subcat1
------------ Subcat2
--------------- offer1
--------------- offer2
--------------- offer3
--------------- offerN
------------ Subcat3
--------- SubcatN
------ Subcat2
------ SubcatN
--- Subcat3
--- SubcatN
- Cat3
--- offer1
--- offer2
--- offer3
--- offerN
- CatN
これは、ネストされたカテゴリの例です。すべての (サブ) カテゴリには、メイン画像、説明、サブカテゴリのリスト、またはオファーのリストが必要です。
Categories (ID, cat_name, parent) というテーブルでそれを行うという考えがあります。親が 0 の場合、それは最上位のカテゴリであり、親が int の場合、その値は親カテゴリの ID です。 ...
しかし、コントローラーでルーティングを解決する方法がわかりませんか? 2 つのレベル (メイン カテゴリとサブカテゴリ) だけでそれを行う方法を知っていますが、それらは手動でルートに追加されます。それを動的に行う方法がわからないので、今後管理パネルからカテゴリとサブカテゴリを追加できます。
もちろん、オファー用に別のテーブルを用意します。それはわかっていますし、問題はありません。問題は、コントローラーの構造がどのように見えるかです。
サブカテゴリが 1 レベルしかなく、サブカテゴリを動的に追加するオプションがない現在のプロジェクトの場合、routes.php には次のようなものがあります。
$route[‘cat1’] = “category”;
$route[‘cat1/(:any)’] = “category/subcategory”;
$route[‘cat2’] = “category”;
$route[‘cat2/(:any)’] = “category/subcategory”;
$route[‘cat3’] = “category”;
$route[‘cat3/(:any)’] = “category/subcategory”;
$route[‘cat4’] = “category”;
$route[‘cat4/(:any)’] = “category/subcategory”;
$route[‘cat5’] = “category”;
つまり、cat1,2,3,4,5 はカテゴリの実際の名前であり、:any はすべてのサブカテゴリを表し、訪問者が example.com/pc_news と入力すると、category という名前のコントローラーとそのインデックスにリダイレクトされます。関数。example.com/pc_news/hardware と入力すると、コントローラ カテゴリのメソッド サブカテゴリにリダイレクトされます。
カテゴリとサブカテゴリをさらに追加したい場合は、ルートで手動で行いますが、サブサブカテゴリ (example.com/pc_news/hardware/something) を追加したい場合は、それを達成する方法がわかりません。
私がやりたい新しいプロジェクトでは、次のようなものがあります。
example.com/summer/turkey/airplane/alanya/hotels # and it will list all the offers
example.com/summer/turkey/airplane/alanya/apartments
example.com/summer/turkey/bus/kushadasi
example.com/winter/bus/france/hotels
example.com/winter/airplane/france/hotels
これを行う方法を知っている人はいますか?