3

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

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

据我所知,选项是:

  • 将发布的参数移动到新的 url 并重定向
  • 编写我自己的分页器来保留查询字符串参数
  • 将表单发布的结果序列化到会话中,并在分页时从那里获取

其中哪一个是最常用的 zend/php 方式——更重要的是,实现最快?帮助!!!!!谢谢。

4

1 回答 1

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 开箱即用。

于 2011-06-13T08:25:25.890 回答