我有一个我要重定向到的页面,需要URL中的参数: http://www.example.com/myController/myAction/param1:val1/param2:val2
我知道有一个用于重定向的CakePHP重定向功能,其工作原理如下:
$this->redirect(array("controller" => "myController",
"action" => "myAction",
$data_can_be_passed_here),
$status, $exit);
如何使用上述功能添加我想要的参数作为网址的一部分?
我认为可能有另外一个元素可以添加到数组中,以便我可以传递param1:val1
和param2:val2
。
非常感谢任何帮助!
答案 0 :(得分:49)
我不知道为什么我无法在CakePHP文档中找到它,但我终于找到了解决方案。我在这里发布它,以防其他人有同样的问题。 (如果有人知道文档中的位置,请将其发布,谢谢!)
要重定向到网址:
http://www.example.com/myController/myAction/param1:val1/param2:val2
您可以使用:
$this->redirect(array("controller" => "myController", "action" => "myAction", "param1" => "val1", "param2" => "val2", $data_can_be_passed_here), $status, $exit);
希望它有所帮助!
答案 1 :(得分:20)
如果需要使用完全get参数重定向,则将'?'
索引传递给$url
数组参数:
$this->redirect(
array(
"controller" => "myController",
"action" => "myAction",
"?" => array(
"param1" => "val1",
"param2" => "val2"
),
$data_can_be_passed_here
),
$status,
$exit
);
重定向到/myController/muAction/...?param1=val1¶m2=val2
至少在CakePHP 1.3
中是这样答案 2 :(得分:4)
相反,您也可以使用此格式
<?php
$this->redirect('/controller/action/par1:par1/par2:par2/');
?>
<?php
$this->redirect('/controller/action/id/10/name/hello/');
?>
答案 3 :(得分:2)
我通常会这样做:$this->redirect(['action' => 'view', $id, 'admins' => true]);
希望它会对你有所帮助。