如何在codeigniter 3的url中包含两个控制器?

uhry853o  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(113)

我想在一个url中包含两个控制器,例如domian.com/category/js/topic/promise。在这里,category和topic是控制器,js是控制器的参数,promise是控制器的参数。
我搜索了一下,没有找到任何类似的例子。那么,我如何才能实现这种包含两个控制器的url呢?我使用的是codeigniter 3。
第一个

mwkjh3gx

mwkjh3gx1#

要将Topic/index方法与所需的url结构一起使用,需要将以下内容添加到config/routes.php中:

$route['category/(:any)/topic/(:any)'] = "topic/index/$2";
  • domain.com/category将显示所有类别
  • domain.com/category/index/js将显示特定类别中的所有主题
  • domain.com/topic将显示所有类别中的所有主题
  • domain.com/topic/index/promise将显示特定主题

如果还需要访问Topic/index中的选定类别,请将其作为参数添加:

class Topic extends MY_Controller{

    public function index($topic = null, $category = null){

        if($topic == null){
            // here show all topics using model of the selected category
        }

        else{
            // show data of selected topic
        }

    }

}

并更改路由,将类别从url传递到方法上:

$route['category/(:any)/topic/(:any)'] = "topic/index/$2/$1";

相关问题