cakePHP:可选的URL参数

时间:2012-11-19 11:04:28

标签: cakephp cakephp-2.1 url-parameters

可能这是一个快速的,但我现在无法理解。

使用未命名的可选参数时出现以下问题。 假设我在控制器中有以下动作,有两个固定参数和两个可选参数:

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

非常感谢任何帮助。

非常感谢...

最好,塞巴斯蒂安

2 个答案:

答案 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个参数,使得非空的那个必须先传入,然后第二个传递你生成网址。