在 Codeigniter 中处理多级子类别的最聪明的解决方案是什么?我想为旅行社制作一个提供旅行优惠的网站,其结构将如下所示:
- 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
有人知道如何做到这一点吗?