Zend_Paginator связывает с параметрами запроса
Не могли бы вы сказать мне, как сделать ссылку с Zend_Paginator следующим образом: http://url/controller/action?id=47&page=2. Я хочу добавить в URL дополнительный параметр к запросу url, например url? Id=value, а не paramater, как этот: url/controller/action/param/value. Не могли бы вы также рассказать, как передать переменную для просмотра к частичной стороне от страницы. Спасибо.
2 ответа
Существует URL помощника представления по умолчанию, который сделан для обработки этого.
Вы можете создать свой URL с помощью следующего:
echo $this->url(array('controller' => 'controllerName',
'action' => 'actionName',
'param1' => 'param1',
'param2' => 'param2));
Если вы пропустите некоторые параметры, помощник будет использовать те, которые были в URL запроса
Итак, с Zend_Paginator вы идете по этому пути:
$pages = $this->paginator->getPages();
// previous
echo $this->url(array('page' => ($pages->current -1)));
// current
echo $this->url(array('page' => ($pages->current)));
// next
echo $this->url(array('page' => ($pages->current +1)));
** РЕДАКТИРОВАТЬ **
Пример для отражения моего первого комментария
echo $this->url(array('controller' => 'controllerName', 'action' => 'actionName')) . '?user=' . $id . '&page=' . $pageNumber
Так что, если я правильно понимаю этот пост (ы)... это ваше решение для того, чтобы сделать значение $_GET или $_POST постоянным для каждой последующей загрузки страницы в наборе результатов Paginator? У меня есть функция поиска, которая возвращает результаты, но когда я пытаюсь разбить результаты на страницы, последующая страница загружает unsets эту переменную $_POST, и я начинаю возвращать все результаты, потому что поиск по шаблону становится SELECT * FROM table WHERE col LIKE '%%'
, не то, что я хочу
РЕДАКТИРОВАТЬ: я загружаю ключевые слова в zend_cache() и вызываю их обратно при загрузке страницы, передавая идентификатор кэша (значение ключевого слова md5()) через URI. если кому-то интересно я выложу код