3

データベース内のすべての行を一覧表示し、zend_paginatorを使用してそれらをページ分割できるようにするアクション+ビューを実装しました。また、フォームの投稿(または取得)を取り、Solrクエリを作成し、結果をページングするためにzend_paginatorアダプターを返すアクション+ビューを作成しました。

私が抱えている問題は、ポストバック後にクエリをページ分割する方法を見つけることです。これは比較的複雑な検索フォームです(検索する8つのフィールド)。

私が見る限りのオプションは次のとおりです。

  • 投稿されたパラメータを新しいURLに移動してリダイレクトします
  • クエリ文字列パラメータを保持する独自のページネータを作成する
  • フォーム投稿の結果をセッションにシリアル化し、ページ付け時にそこから取得します

これらのどれがそれを行うための最もzend/phpの方法です-そして、より重要なことに、実装するのが最も速いですか?ヘルプ!!!!!ありがとう。

4

1 に答える 1

2

誰もこれより良い答えを持っていないと確信するまで、私はこの答えを受け入れるつもりはありませんが、私は決定に達しました. 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 コマンドはすべての空のパラメーターを削除します。これは、zend_paginator がすぐに使用できる、クリーンでブックマーク可能な、seo フレンドリーな URL になることを意味します。

于 2011-06-13T08:25:25.890 に答える