通过使用zend_form执行搜索的结果进行分页的最惯用方法是什么

时间:2011-06-10 08:56:06

标签: php zend-framework zend-form zend-route zend-paginator

我已经实现了一个动作+视图,列出了数据库中的所有行,并允许您使用zend_paginator对它们进行分页。我还写了一个动作+视图,它接受一个表单post(或get),构造一个Solr查询并返回一个zend_paginator适配器来翻译结果。

我遇到的问题是如何在回发后对查询进行分页,这是一个相对复杂的搜索表单(要搜索的8个字段)。

据我所知,选项是:

  • 移动已发布的参数 到新网址并重定向
  • 写我的 拥有保存查询的paginator 字符串参数
  • 序列化 表格的结果发布到 会话并从那里得到它 拼版

其中哪一种是最好的zend / php方式 - 更重要的是,最快实现? 救命!!!!! 感谢。

1 个答案:

答案 0 :(得分:2)

我不会接受这个答案,直到我说服没有人有更好的答案,但我已经做出决定。我已经去了PRG模式(重定向后获取)。

    if ($request->isPost()) {
        if ($form->isValid($request->getPost())) {
            return $this->_helper->redirector('index','contact',NULL,array_filter($form->getValues()));
        }
    }

重定向到一个url,其中包含表单内容作为参数 - www.url.com/form/param1/val/param2/val

array_filter命令会删除所有空参数,这意味着你最终会得到一个很好的干净,可收藏,seo友好的URL,zend_paginator可以在盒子里工作。