Zend Framework: добавление строк запроса к URL текущей страницы - PullRequest
1 голос
/ 19 августа 2010

как я могу добавить строки запроса в URL? я мог бы, конечно, сделать (из действия контроллера)

$currUrl = $this->getRequest()->getRequestUri();
$newUrl = $currUrl . '/something/else';

если requestUri выглядит как /users, это нормально. но что, если URL выглядит как /users?page=1? тогда я получу что-то вроде /users?page=1/something/else, что не так

1 Ответ

3 голосов
/ 19 августа 2010

Это ненадежный способ добавления параметров в текущий URI запроса.Скажем, например, что вы используете маршрут модуля по умолчанию, а ваш текущий URI, например,./news.Если вы хотите добавить параметры в конец, вы должны сначала добавить имя действия, следовательно, имея: /news/index/something/else.Вы можете видеть, что это может стать довольно утомительным, чтобы сделать это вручную.Zend Framework предоставляет вам методы, чтобы сделать это с легкостью.В вашем контроллере вы можете сделать это, чтобы сгенерировать URI на основе текущего:

$router = Zend_Controller_Front::getInstance()->getRouter();
$url = $router->assemble(array('something' => 'somethingelse'));

Если вы хотите сохранить строку запроса с новым URI, сделайте после этого:

if (!empty($_SERVER['QUERY_STRING']))
    $url .= '?'.$_SERVER['QUERY_STRING'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...