2011-01-14 12 views
2

Zend_Paginatorとリンクする方法を教えてください。 http://url/controller/action?id=47&page=2 urlのようなパラメータではなく、url?id = valueのようなurlのクエリにurl/controller/action/param/valueの追加パラメータをurlに追加します。ビューの変数をページ以外に部分的に渡す方法も教えてください。 ありがとうございます。Zend_Paginatorはクエリパラメータとリンクしています

+0

あなたが答えを得始めると、他の質問を追加するために質問を編集するのは普通ではありません。このリンクを参照してくださいhttp://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.placeholder –

答えて

1

これを処理するために作成されたデフォルトのビューヘルパーURLがあります。

次とあなたのURLを生成することができます

echo $this->url(array('controller' => 'controllerName', 
         'action'  => 'actionName', 
         'param1'  => 'param1', 
         'param2'  => 'param2)); 

あなたがのparamsの一部を省略した場合、ヘルパーはあなたがこれを行くZend_PaginatorとクエリURLだから、

にあったものを、再利用します方法:

$pages = $this->paginator->getPages(); 

// previous 
echo $this->url(array('page' => ($pages->current -1))); 

// current 
echo $this->url(array('page' => ($pages->current))); 

// next 
echo $this->url(array('page' => ($pages->current +1))); 

** EDIT **

Exempleメートルを反映します私はこのポスト(複数可)を理解する場合は、y最初のコメント

echo $this->url(array('controller' => 'controllerName', 'action' => 'actionName')) . '?user=' . $id . '&page=' . $pageNumber 
+0

それはpartamatersを追加しますが、私はURLに追加する必要がありますこのurl?id = valueのように。 – Oleg

+0

あなたはちょうどヘルパーであなたのベースURLを生成し、そのようにするためにあなたの文字列を連結することができます:controller/action?id = value –

+0

私はあなたが正しいと思う、paginationControlの4番目のパラメータ。 – Oleg

0

はそう正しく...これは、結果のPaginator'edセット内の後続の各ページの負荷のための永続的な$ _GETや$ _POST値を作成するためのソリューションです?私は検索結果を返す検索機能を持っていますが、結果をページ分割しようとすると、ワイルドカード検索がSELECT * FROM table WHERE col LIKE '%%'になるため、$ _POST変数とすべての結果が返されるようになります。私が欲しいものではない

EDIT:私はキーワードをzend_cache()にロードして、キャッシュのid(キーワードのmd5()値)をURIで渡してページを読み戻しています。もし誰かが興味があれば私はコードを投稿します

+0

私は$ _POSTではなく、$ _GETを使用します。 – Oleg

+0

したがって、各ページのURLはhttp:// url/view?id = 57&page = 2&rows = 25&filterby = 2&filter = Allen&status = 1のようになります。 – Oleg

関連する問題