我正在尝试在 CI 中使用路由来创建注册表单
signup
被重新路由到user/signup
但我的注册功能可以包含一个参数:function signup($type = 1)
如何通过路由使其成为可选?我试过$route['signup/?(:num)'] = 'user/signup/$1';
了,但是去的时候/signup
我得到一个 404,只能/signup/1/
工作。
我正在尝试在 CI 中使用路由来创建注册表单
signup
被重新路由到user/signup
但我的注册功能可以包含一个参数:function signup($type = 1)
如何通过路由使其成为可选?我试过$route['signup/?(:num)'] = 'user/signup/$1';
了,但是去的时候/signup
我得到一个 404,只能/signup/1/
工作。
表达这一点的最清晰方法可能是声明两条路线:
$route['signup'] = "user/signup";
$route['signup/(:num)'] = "user/signup/$1";
对于其他在适当时候阅读本文的人-我相信答案应该是$route['signup/?(:num)?']
使数字也成为可选的。我在其他事情上也有类似的问题。
@Ukuser32 的答案的问题在于它允许像 signup69 这样的 URI 被接受,在这种情况下这可能是无害的,但在一般情况下是不可取的。只需将斜线与捕获的 :num 一起放入
$route['signup(/:num)?'] = "user/signup$1"
请注意,如果您有多个可选段,则需要嵌套它们....