可能这是一个快速的,但我现在无法理解。
使用未命名的可选参数时出现以下问题。 假设我在控制器中有以下动作,有两个固定参数和两个可选参数:
function action ($param1, $param2, $param3=NULL, $param4=NULL) {
//any code
}
$ param3和$ param4既可以存在,也可以存在,或者两者之一。 如果设置了none,all 4或前三个参数,则一切正常。 e.g。
www.domain.com/controller/action/value1/value2/value3/
问题出现了,如果遗漏了param3
www.domain.com/controller/action/value1/value2//value4/
有没有办法告诉Cake将param2和param4之间的//作为未设置的param3处理? 目前,参数被分配给“错误”变量。
$param1= value1
$param2= value2
$param3= value4
$param4= NULL
我想要的是以下
$param1= value1
$param2= value2
$param3= NULL
$param4= value4
非常感谢任何帮助。
非常感谢...
最好,塞巴斯蒂安
答案 0 :(得分:3)
你不能用CakePHP做到这一点,甚至用PHP做更多。定义param的顺序时,每个参数都需要有一个值。
我建议您使用命名参数,您将能够:
http://www.example.com/controller/action/param1:value1/param2:value2/param4:value4/
有关更多信息,请参阅named parameters的文档。
修改:我不确定,但您也应该能够这样做:
www.domain.com/controller/action/value1/value2//value4/
但命名参数的选项肯定更好!
答案 1 :(得分:0)
你可以传递你的第3和第4个参数,使得非空的那个必须先传入,然后第二个传递你生成网址。