笨 - 当使用$路线[ '(:任何)'] = '页/图/ $ 1'

2019-06-25 11:24发布

当使用

$route['(:any)'] = 'pages/view/$1';

我想在我的路由,例如使用其他控制器:

$route['del/(:any)'] = 'crud/del';

它不会工作。 我想它会使用

pages/view/del/$1

和删除项目时不我的CRUD控制器。 我该如何解决这个问题?

Answer 1:

如图所示, $route['(:any)']将匹配任何 URL,因此,“一揽子”路线之前把你的其他自定义路线:

$route['del/(:any)'] = 'crud/del';
// Other routes as needed...
$route['(:any)'] = 'pages/view/$1';


Answer 2:

它百分之百的工作

$route['(:any)'] url is placed last in your routes file

$route['(:any)/company_product_deal_detail']    =   "mypage_product_picture/deal_detail/$1";
$route['(:any)/company_service_deals/(:any)']    =   "mypage_service_deal_list/index/$1";
$route['(:any)/company_service_deals']    =   "mypage_service_deal_list/index/$1";

$route['(:any)']    =   "company/index/$1";


Answer 3:

我知道这是一个老问题,但我发现自己是一个很好的解决方案。

默认情况下,从笨配置航线(即使直控制器,法等规定)为主的URL,所以我改变了这种优先权是这样的:

system/core/Router.php找到_parse_routes方法。

根据字面路由匹配添加以下代码:

$cont_segments = $this->_validate_request($this->uri->segments);
if ($cont_segments == $this->uri->segments) {
  return $this->_set_request($cont_segments);
}

我同意,这种做法是有点错误的,因为我们从编辑系统/核心文件,但我需要一个快速soluttion有很多的URL的工作。



文章来源: CodeIgniter - When using $route['(:any)'] = 'pages/view/$1' how to use other controllers?