CodeIgniter 可选参数
Posted
技术标签:
【中文标题】CodeIgniter 可选参数【英文标题】:CodeIgniter optional parameter 【发布时间】:2012-12-20 10:21:26 【问题描述】:我正在尝试使用 CI 中的路由来创建注册表单
signup
被重新路由到user/signup
但是我的注册函数可以包含一个参数:function signup($type = 1)
如何通过路由选择此选项?我尝试了$route['signup/?(:num)'] = 'user/signup/$1';
,但是当转到/signup
时,我得到了404,只有/signup/1/
有效。
【问题讨论】:
【参考方案1】:表达这一点的最清晰方式可能是声明两条路线:
$route['signup'] = "user/signup";
$route['signup/(:num)'] = "user/signup/$1";
【讨论】:
效果很好,没想到,我试图弄清楚如何使它成为可选的。谢谢! 编辑似乎不起作用,它似乎没有发送参数 谢谢,我想我更喜欢你的第一个解决方案,更容易阅读/记住。 @Wesley 谢谢!这个小技巧节省了很多时间!【参考方案2】:对于其他在适当时候阅读此内容的人 - 我相信答案应该是 $route['signup/?(:num)?']
,这使得该数字也是可选的。我在其他方面也有类似的问题。
【讨论】:
【参考方案3】:@Ukuser32 的答案的问题在于它允许像 signup69 这样的 URI 被接受,在这种情况下这可能是无害的,但在一般情况下是不可取的。只需将斜线与捕获的 :num 一起放入
$route['signup(/:num)?'] = "user/signup$1"
请注意,如果您有多个可选段,则需要嵌套它们....
【讨论】:
以上是关于CodeIgniter 可选参数的主要内容,如果未能解决你的问题,请参考以下文章