Ваш пример кода не показывает, как заполняется $url
, но вы действительно должны использовать URL ViewHelper .
Так, например - ваша предыдущая ссылка станет:
<a href=<?php echo $this->url(array('page' => $this->previous)); ?> id="previous">< Previous</a>
Будет возвращен правильный URL-адрес текущей страницы с параметром page
, установленным на $this->previous
. Таким образом, если текущий URL равен /users/view?foo=bar&page=5
, приведенный выше код выведет /users/view?foo=bar&page=4
для предыдущей ссылки. Обратите внимание, как сохраняются все параметры запроса, которые уже присутствуют.
Итак, если параметр id
уже присутствует в URL-адресе, отображающем ваш paginator, приведенный выше код будет «просто работать». Однако, если вам все еще нужно добавить параметр id
, вы можете сделать это следующим образом:
<a href=<?php echo $this->url(array('page' => $this->previous, 'id' => $this->id)); ?> id="previous">< Previous</a>
Чтобы продолжить с нашего предыдущего примера, этот код выведет следующий URL: /users/view?foo=bar&page=4&id={someId}
Вот справочная документация для URL ViewHelper:
url ($ urlOptions, $ name, $ reset):
Создает строку URL на основе именованного
маршрут. $ urlOptions должен быть
ассоциативный массив пар ключ / значение
используется определенным маршрутом.
Последнее замечание - $reset
(третий) параметр URL ViewHelper очень пригодится. Поведение по умолчанию - сохранить все параметры запроса текущего запроса, но вызов $this->url(array(), 'default', true)
с true
для параметра $reset
в основном удалит все параметры, кроме тех, которые вы указали в $urlOptions
.