You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter动态URL路由映射变量错误:输出$id而非实际数值

问题原因与解决方案

你的问题出在路由规则的参数引用方式上,CodeIgniter的路由系统并不识别$id这种变量名作为捕获参数的引用,而是使用数字占位符(比如$1、$2)来对应路由中定义的捕获组顺序。

错误的路由配置

$route['logistics_park/(:num)']='user/logistics_park/$id';

这里的$id会被当作字符串直接传递给控制器方法,所以你才会输出"$id"而不是实际的数值。

正确的路由配置

把$id改成$1(因为(:num)是你定义的第一个捕获组):

$route['logistics_park/(:num)']='user/logistics_park/$1';

为什么这样有效?

CodeIgniter路由中,每个用括号包裹的捕获规则(比如(:num)、(:any))会按顺序被标记为$1、$2、$3...,路由解析时会把URL中匹配到的对应部分替换到这些占位符的位置,最终传递给控制器的方法参数。

你的控制器方法public function logistics_park($id)是没问题的,参数名$id可以随便命名,只要路由传递过来的是正确的数值就行。修改后再访问类似yourdomain.com/logistics_park/123的URL,控制器就会输出123了。

内容的提问来源于stack exchange,提问作者Abhiraj Tulsyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:39:20