【发布时间】:2015-07-21 23:51:01
【问题描述】:
我正在学习 codeigniter(我使用的是 3.0.0 版),但是当我尝试使用参数进行路由时遇到了问题
在文件 routes.php 我有:
$route['admin/orders'] = 'admin_orders/index';
$route['admin/orders/(:any)'] = 'admin_orders/index';
$route['admin/orders/getAll'] = 'admin_orders/getAll';
$route['admin/orders/getLast'] = 'admin_orders/getLast';
$route['admin/orders/delete/(:any)'] = 'admin_orders/delete'
;
在 admin_orders.php 我有:
public function delete(){
$id = $this->uri->segment(4);
echo "ok $id";
}
在视图中:
<a href="'.site_url("admin").'/orders/delete/3'.'" class="btn btn-info">Delete</a>
但是当我按下删除应用程序重新加载页面时,如果我尝试不使用 /(:any) 函数会加载并显示消息并且其他路由正在工作
当然我做错了什么,如何使用 codeigniter 3 加载一个带有参数的函数?
【问题讨论】:
-
可能您使用 :any 的顺序是错误的,因为这可能会在其余部分之前匹配。即使它不是为了安全起见,也应该在更一般的最后列出,因为它的工作方式虽然它会在它说好的匹配时停止,如果它是一般的,它永远不会达到特定的。就像最佳实践规则一样。这就是为什么 else 出现在 if 和 ifelse 之后的原因
-
在他们的文档页面上有一条注释,上面写着ellislab.com/codeigniter/user-guide/general/routing.html
-
tks @ArtisiticPhoenix,你解决了我的问题
-
太棒了,很高兴我能帮上忙,然后我会把它作为答案发布
标签: php codeigniter codeigniter-3