Cake PHP редирект с параметрами в URL - PullRequest
28 голосов
/ 12 мая 2010

У меня есть страница, на которую я хочу перенаправить, для которой требуются параметры в 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);

Как добавить параметры, которые я хочу, как часть URL, используя вышеупомянутую функцию?

Я бы подумал, что может быть еще один элемент, который я мог бы добавить в массив, чтобы я мог передать param1:val1 и param2:val2.

Любая помощь будет принята с благодарностью!

Ответы [ 4 ]

49 голосов
/ 12 мая 2010

Я не знаю, почему мне не удалось найти это в документации CakePHP, но я наконец-то нашел решение. Я публикую это здесь на тот случай, если у кого-то возникнет такая же проблема. (Если кто-то знает, где это находится в документации, пожалуйста, напишите об этом, спасибо!)

Для перенаправления на URL:

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);

Надеюсь, это поможет!

21 голосов
/ 09 июня 2012

Если вам нужно перенаправить с точно полученными параметрами, тогда передайте '?' index в $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

4 голосов
/ 02 февраля 2012

Вместо этого вы также можете использовать этот формат

<?php

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


?>

<?php

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

?>
2 голосов
/ 02 июля 2015

Я обычно делаю что-то вроде этого: $this->redirect(['action' => 'view', $id, 'admins' => true]);

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...