Zend Paginator в Symfony (для результатов поиска Lucene)

Я написал вопрос на форуме Symfony, но не получил результата. Конечно, я знаю, что люди могут быть заняты или недоступны, поэтому я не могу сразу получить ответ. Но мне действительно нужно это быстро, поэтому я тоже написал здесь. Если это как-то не разрешено, просто закройте вопрос. Благодарю.

Первоначально размещено здесь: http://forum.symfony-project.org/viewtopic.php?f=22&t=31537

Привет, у меня есть вопрос относительно использования Zend Pagination в Zend Lucene. Проверил старый форум и нашел это: forum.symfony-project.org/viewtopic.php?f=21&t=27342&p=103440&hilit=zend+pagination&sid=1cdc305c262c6b3cf79fdeef25761f34#p103440 Но для этого мне нужна дополнительная функция. Я попробовал код в посте выше, и он работает. Но как нам это реализовать?

Проверяя документацию Zend, я создаю файл представления в /web/view/scripts/pagination.php с кодом для файла, найденного здесь:

framework.zend.com/manual/1.10/en/zend.paginator.usage.html

С некоторыми изменениями для $this->url() становиться link_to() Тогда код в действии выглядит так:

$pager = Zend_Paginator::factory($query->execute()->getData());
$pager->setItemCountPerPage(3);
$pager->setCurrentPageNumber($request->getParameter('page', 1));
$pager->setDefaultScrollingStyle('Sliding');
Zend_View_Helper_PaginationControl::setDefaultViewPartial('_pagination.php');

$this->pager = $pager;

И ввиду: <?php echo $pager ?>

Проблема, конечно, правильно ли это делать? Затем, как я могу получить текущий URL и изменить его параметр в поле зрения? Для Zend, насколько я понимаю, это что-то вроде $this->url(array('page', 5)), В любом случае, чтобы сделать это в Symfony?

Спасибо, прежде чем.

Я также проверил SO и получил это: stackru.com/questions/2002648/is-there-a-symfony-helper-for-getting-the-current-action-url-and-changing-one-or

Но я не могу получить доступ к $sf_request в pagination.php, упомянутом выше. Я думаю, это потому, что pagination.php обращается к фронт-контроллеру Zend. И самое странное, я могу получить доступ к помощнику по умолчанию, например, UrlHelper (пробовал url_for и link_to - все работает).

Ps. Извините за ссылки, выделенные жирным шрифтом - не может опубликовать более 1 ссылку сейчас.

1 ответ

Скрипты вида обычно имеют .phtml расширение, а не .php, это не имеет значения, но просто чтобы вы знали.

Попробуйте изменить

$this->pager = $pager;

к

$this->view->pager = $pager;
Другие вопросы по тегам