使用url中的参数对PHP进行重定向

时间:2010-05-11 22:05:47

标签: php url cakephp redirect parameters

我有一个我要重定向到的页面,需要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:val1param2:val2

非常感谢任何帮助!

4 个答案:

答案 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&param2=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]);

希望它会对你有所帮助。