Подтвердить что ты не робот

Cake PHP перенаправляет с параметрами в url

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

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

4b9b3361

Ответ 1

Я не знаю, почему я не смог найти это в документации 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);

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

Ответ 2

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

Ответ 3

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

<?php

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


?>

<?php

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

?>

Ответ 4

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

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