我已经实现了一个操作 + 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/