У меня есть страница, на которую я хочу перенаправить, для которой требуются параметры в 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
.
Любая помощь будет принята с благодарностью!
Я не знаю, почему я не смог найти это в документации 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);
Надеюсь, поможет!
Если вам нужно перенаправить с точным получением параметров, передайте '?'
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
Вместо этого вы можете использовать этот формат также
<?php $this->redirect('/controller/action/par1:par1/par2:par2/'); ?> <?php $this->redirect('/controller/action/id/10/name/hello/'); ?>
Обычно я делаю что-то вроде этого: $this->redirect(['action' => 'view', $id, 'admins' => true]);
Надеюсь, это поможет вам.