CodeIgniter中的动态控制器
我正在创建一个新网站,从数据库中加载所有主类别和子类别。我也测试了导航,也就是说,如果我单击任何主类别,它会完美地加载所有相应的子类别,而不会出现任何问题。然而,目前,我是通过在URL中传递查询字符串来实现这一点的。比如说CodeIgniter中的动态控制器,codeigniter,Codeigniter,我正在创建一个新网站,从数据库中加载所有主类别和子类别。我也测试了导航,也就是说,如果我单击任何主类别,它会完美地加载所有相应的子类别,而不会出现任何问题。然而,目前,我是通过在URL中传递查询字符串来实现这一点的。比如说 http://localhost/MyController?id=32145 让我们假设id 32145表示一个主类别,即“关于我们””。我的问题是如何将上述URL更改为以下内容: http://localhost/Aboutus 如果在“关于我们”的下有任何子类别,则应
http://localhost/MyController?id=32145
让我们假设id 32145表示一个主类别,即“关于我们””。我的问题是如何将上述URL更改为以下内容:
http://localhost/Aboutus
如果在“关于我们”的下有任何子类别,则应显示为:
http://localhost/Aboutus/Mission
请帮我解决这个问题。默认情况下,CodeIgniter使用基于段的方法,您可以像问题的第二部分一样进行URL路由—“如果有任何子类别在About us下” 详情如下:
但是,如果您想重写完整的URL,则可能需要检查。htaccess rewriting这并不容易,请执行一次迁移
public function old_url($aProdId) {
if (is_null($aProdId)) {
// error cannot be null
}
$NewUrl = $this->new_url_model->getNewUrl($aProdId);
if (!$NewUrl) {
// error new url not exist
return;
}
redirect(base_url($NewUrl), 'refresh');
}
如果我需要动态地创建路径$route['product/(:any)”,比如说$route['db_value/(:any')。那该怎么办呢?
public function old_url($aProdId) {
if (is_null($aProdId)) {
// error cannot be null
}
$NewUrl = $this->new_url_model->getNewUrl($aProdId);
if (!$NewUrl) {
// error new url not exist
return;
}
redirect(base_url($NewUrl), 'refresh');
}