我有一个完全动态的网站,它创建菜单,动态地从后端分页。 现在让我向您展示正在创建的URL序列:
http://localhost/occ/level1/level2/....leveln
基本上 level1 , level2 ,... leveln 是特定菜单的级别(层次结构),例如 home / contact_section / contact_us 现在管理员可以创建多个页面并创建他想要的菜单级别,所以URL逻辑是什么,它将继续从父级跟随最后一个父级并返回URL并在最后URL的名称将是我传递给通用控制器的名称,它基本上取名称运行db查询获取所有数据然后显示页面这里是我的路线:
$route['default_controller'] = 'Home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['Admin'] = 'Admin';
//$route['(:any)'] = 'Home/pages/$1';
$route['(:any)/(:any)'] = 'Home/pages/$1/$2';
//$route['(:any)/(:any)'] = 'Home/pages/$1';
现在上述路线有两个问题:
答案 0 :(得分:1)
如果您使用的是ci 3,则可以使用regular expressions之类的
应用/配置/ routes.php文件
//http://localhost/occ/level1/level2/....leveln
$route['(.+)'] = function ( $param ) {
$params = implode(",", explode('/', $param));
if( $params[0] === 'Admin'){
$return = 'Admin/';
}
else{
$return = 'Home/pages/';
}
return $return . $params;
}
应用/配置/ Home.php
public function pages ( $params ) {
$str = explode(',', $params);
//now you can manipulate all params
$str[0];//param_1
$str[1];//param_2
$str[n];//param_n
}