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. если кому-то интересно я выложу код

Другие вопросы по тегам