CodeIgniter可选参数

时间:2013-01-06 14:49:04

标签: codeigniter routing routes

我正在尝试在CI中使用路由来创建注册表单

signup已重新路由至user/signup

但我的注册功能可以包含一个参数:function signup($type = 1)

如何通过路由进行此选项?我尝试了$route['signup/?(:num)'] = 'user/signup/$1';,但在转到/signup时,我收到的是404,只有/signup/1/有效。

3 个答案:

答案 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"

请注意,如果您有多个可选段,则需要嵌套它们....