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
.
Любая помощь будет принята с благодарностью!
Ответы
Ответ 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¶m2=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]);
Надеюсь, это поможет вам.