我正在尝试在CI中使用路由来创建注册表单
signup
已重新路由至user/signup
但我的注册功能可以包含一个参数:function signup($type = 1)
如何通过路由进行此选项?我尝试了$route['signup/?(:num)'] = 'user/signup/$1';
,但在转到/signup
时,我收到的是404,只有/signup/1/
有效。
答案 0 :(得分:18)
表达这一点的最明确的方法可能是声明两条路线:
$route['signup'] = "user/signup";
$route['signup/(:num)'] = "user/signup/$1";
答案 1 :(得分:17)
对于其他在适当的时候阅读此内容的人 - 我相信答案应该是$route['signup/?(:num)?']
,这使得该号码也是可选的。我对其他事情也有类似的问题。
答案 2 :(得分:3)
@ Ukuser32答案的问题在于它允许接受像signup69这样的URI,在这种情况下可能是无害的,但在一般情况下是不可取的。只需将斜杠放入捕获的:num
即可$route['signup(/:num)?'] = "user/signup$1"
请注意,如果您有多个可选段,则需要嵌套它们....