我有你的问题的解决方案:)
1) 例如,如果您使用确定优先级的 HMVC (https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/)(示例模块:前):
- page_name(控制器:Page)
- product_name(控制器:产品)
- 类别(控制器:类别)
路线中的下一个:
$route['(:any)'] = function ($slug)
{
return 'front/page/show/'.$slug;
};
next check in controller 页面检查存在有链接。如果不存在,则运行下一个控制器产品。例如:
...
public function show($slug='')
{
$this->load->model('page_m');
$page = $this->page_m->GetRowBySlug($slug)->row();
if(!$page) {
echo modules::run('front/product/show', $slug);
exit;
}
...
控制器中的下一个产品添加到相同但如果不存在链接运行下一个控制器等:
...
public function show($slug='')
{
$this->load->model('product_m');
$page = $this->product_m->GetRowBySlug($slug)->row();
if(!$page) {
echo modules::run('front/categories/show', $slug);
exit;
}
...
2) 如果不使用HMVC,你可以运行其他控制器:
...
$this->load->library('../controllers/product');
$this->product->show($slug)
...
而且你必须改变路线:
$route['(:any)'] = "page/show/$1";
对不起我的英语,但我试过了......