开发者

Cake PHP redirect with parameters in url

开发者 https://www.devze.com 2022-12-30 11:00 出处:网络
I have a page that I want to redirect to that requires parameters in the URL: http://www.example.com/myController/myAction/param1:val1/param2:val2

I have a page that I want to redirect to that requires parameters in the URL: http://www.example.com/myController/myAction/param1:val1/param2:val2

I know that there is a CakePHP redirect function for redirecting that works as follows:

 $this->redirect(array("controller" => "myController",
                       "action" => "myAction",
                       $data_can_be_passed_here),
                 $status, $exit);

How do I add the parameters that I want as part of the url using th开发者_开发技巧e above function?

I would think that there might be another element that I could add to array so that I can pass along param1:val1 and param2:val2.

Any help would be greatly appreciated!


I do not know why I was not able to find this in the CakePHP documentation, but I did finally figure out the solution. I am posting it here in case anyone else has the same problem. (If someone knows where this is in the documentation please post it as well, thanks!)

To redirect to the URL:

http://www.example.com/myController/myAction/param1:val1/param2:val2

You can use:

$this->redirect(array("controller" => "myController", 
                      "action" => "myAction",
                      "param1" => "val1",
                      "param2" => "val2",
                      $data_can_be_passed_here),
                $status,
                $exit);

Hope it helps!


If you need to redirect with exactly get parameters, then pass '?' index to $url array argument:

$this->redirect(
    array(
          "controller" => "myController", 
          "action" => "myAction",
          "?" => array(
              "param1" => "val1",
              "param2" => "val2"
          ),
          $data_can_be_passed_here
    ),
    $status,
    $exit
);

It redirects to /myController/muAction/...?param1=val1&param2=val2

This is true at least in CakePHP 1.3


Instead, you can use this format also

<?php

$this->redirect('/controller/action/par1:par1/par2:par2/');


?>

<?php

$this->redirect('/controller/action/id/10/name/hello/');

?>


I usually do something like this:$this->redirect(['action' => 'view', $id, 'admins' => true]);

Hope it will help you.


In CakePHP 4.2 it seems that "param" => "val1" doesnt work anymore.

This is the way you go:

return $this->redirect(['controller'=>'mycontroller','action' => 'myview', 'myparameter']);
0

精彩评论

暂无评论...
验证码 换一张
取 消