12

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

signup被重新路由到user/signup

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

如何通过路由使其成为可选?我试过$route['signup/?(:num)'] = 'user/signup/$1';了,但是去的时候/signup我得到一个 404,只能/signup/1/工作。

4

3 回答 3

26

表达这一点的最清晰方法可能是声明两条路线:

$route['signup'] = "user/signup";
$route['signup/(:num)'] = "user/signup/$1";
于 2013-01-06T14:52:35.553 回答
22

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

于 2016-04-18T11:44:03.457 回答
6

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

$route['signup(/:num)?'] = "user/signup$1"

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

于 2017-08-26T22:51:24.590 回答