Symfony中的Zend Paginator(用于Lucene搜索结果)

时间:2011-01-07 04:25:54

标签: php zend-framework lucene symfony-1.4 zend-paginator

我在symfony论坛上写过这个问题,但没有结果。当然我知道人们可能很忙或者不在,所以我不能马上回答。但我真的需要这么快,所以我也发布在这里。如果以某种方式不允许这样做,请关闭问题。感谢。

最初发布在这里: http://forum.symfony-project.org/viewtopic.php?f=22&t=31537

您好, 我有一些关于在zend lucene中使用zend分页的问题。检查旧论坛,发现: 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并得到了这个: stackoverflow.com/questions/2002648/is-there-a-symfony-helper-for-getting-the-current-action-url-and-changing-one-or

但是我无法在上面提到的pagination.php中访问$ sf_request。我认为这是因为pagination.php访问了Zend的前端控制器。最奇怪的是,我可以访问像UrlHelper这样的默认助手(尝试过url_for和link_to - 它有效)。

聚苯乙烯。抱歉粗体链接 - 现在不能发布超过1个链接。

1 个答案:

答案 0 :(得分:0)

查看脚本通常具有.phtml扩展名,而不是.php,这无关紧要,但您知道。

尝试更改

$this->pager = $pager;

$this->view->pager = $pager;