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

发布于 2024-11-14 20:25:44 字数 381 浏览 5 评论 0原文

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

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

据我所知,选项有:

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

其中哪一个是最 zend/php 的实现方法 - 更重要的是,实现速度最快? 帮助!!!!! 谢谢。

I've implemented an action + view that lists all the rows in a database and allows you to paginate through them using zend_paginator. I've also written an action + view that takes a form post (or get), constructs a Solr query and returns a zend_paginator adapter to page through the results.

The problem I've got is working out how to paginate through my query after the postback, it's a relatively complex search form (8 fields to search on).

The options as far as I can see are:

  • Move the parameters that are posted
    to a new url and redirect
  • Write my
    own paginator that preserve query
    string parameters
  • Serialize the
    results of the form post into a
    session and get it from there when
    paginating

Which of these is the most zend/php way of doing it - and, more importantly, quickest to implement?
HELP!!!!!
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里人 2024-11-21 20:25:44

在我确信没有人有更好的答案之前,我不会接受这个答案,但我已经做出了决定。我选择了 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 zend_paginator 开箱即用的友好 url。

I'm not going to accept this answer until I'm convince no one has a better one but I've come to a decision. I've gone for the PRG pattern (post-redirect-get).

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

This redirects to a url with the contents of the form as parameters - www.url.com/form/param1/val/param2/val

The array_filter command strips all empty parameters and this means you end up with a nice clean, bookmarkable, seo friendly url that the zend_paginator works with out the box.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文