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

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

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

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

据我所知,选项是:

  • 移动发布的参数 到一个新的 url 并重定向
  • 写下我的 保留查询的自己的分页器 字符串参数
  • 序列化 表单的结果发布到 session 并从那里获取它 分页

其中哪一种是最适合 zend/php 的方式 - 更重要的是,实现起来最快? 帮助!!!!! 谢谢。

最佳答案

在我确信没有人有更好的答案但我已经做出决定之前,我不会接受这个答案。我选择了 PRG 模式(post-redirect-get)。

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

关于php - 对使用 zend_form 执行的搜索结果进行分页的最惯用的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6304125/

相关文章:

php - 如何使用 Zend Framework 中的 ViewHelper 设置 Select lke disabled ='disabled' 的任何属性

zend-framework - 如何在 Zend Framework 中使用命名空间?

php - 如何根据另一个字段的值来验证 Zend_Form 的一个字段?

zend-framework - 无法渲染 Zend_Form

php - bcrypt 哈希值应该存储在主用户表中还是它自己的表中?

php - 在 Windows 8.1 上安装 PHP 5.6 后 Apache 2.2 无法启动

php - 如何对表单中的不安全内容进行转义以防止XSS?

php - 如何检查laravel子域中的auth用户?

php - Zend Navigation - 各种导航 block

zend-framework - 元素标签为错误消息中的变量以进行验证