CodeIgniter可选参数

wou*_*_be 11 routing routes codeigniter

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

signup 重新路由到 user/signup

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

如何通过路由选择进行此选择?我试过了$route['signup/?(:num)'] = 'user/signup/$1';,但是当/signup我要获得404时,才/signup/1/有效.

Wes*_*rch 22

表达这一点的最明确的方法可能是宣布两条路线:

$route['signup'] = "user/signup";
$route['signup/(:num)'] = "user/signup/$1";
Run Code Online (Sandbox Code Playgroud)


Uku*_*r32 17

对于其他任何人在适当的时候阅读这个 - 我相信答案应该是$route['signup/?(:num)?']使数字可选的.我对其他事情也有类似的问题.


Jef*_*eff 6

@Ukuser32 的答案的问题在于它允许接受像 signup69 这样的 URI,这在这种情况下可能是无害的,但在一般情况下是不可取的。只需将斜线与捕获的 :num 放在一起

$route['signup(/:num)?'] = "user/signup$1"
Run Code Online (Sandbox Code Playgroud)

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