Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CodeIgniter可选参数_Codeigniter_Routing_Routes - Fatal编程技术网

CodeIgniter可选参数

CodeIgniter可选参数,codeigniter,routing,routes,Codeigniter,Routing,Routes,我正在尝试使用CI中的路由创建注册表单 signup被重新路由到user/signup 但是我的注册函数可以包含一个参数:函数注册($type=1) 如何通过路由选择此选项?我尝试了$route['signup/?(:num)]='user/signup/$1',但是当我要去/signup的时候,我得到了一个404,只有/signup/1/起作用。表达这一点最清晰的方式可能是声明两条路线: $route['signup'] = "user/signup"; $route['signup/(:nu

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

signup
被重新路由到
user/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"

请注意,如果您有多个可选段,那么您需要将它们嵌套……

这很好,我没有想到,我正试图找出如何使其可选。谢谢编辑似乎不起作用,它似乎没有发送参数。谢谢,我想我更喜欢你的第一个解决方案,更容易阅读/记住。@Wesley谢谢!这个小提示节省了很多时间!