CakePHP Pagenateのページ数を取得

PHP

CakePHP1.3

CakePHP Pagenateのページ数を取得

 $this->params['named']['page']

で、2ページ以降のページ数が取得できます。

ところで、Paginateは便利な機能ですが、ちょっと変わったことをすると、応用が利かないですよね。
たとえば、私が今作っているWebアプリケーションでは、100件のデータを、ユーザーには10件ごとに見せるというアプリケーションを作っています。

1ページめでは、100件をPaginateのlimitに設定してOKです。
しかし、2件目以降では、10件ごとしかとってきてくれないんですよね。

検索条件がかなり複雑なのと、出力されたデータをだいぶ整形しなくてはいけませんので、通常のPaginateの機能があまり使えませんでした。

しょうがないので、ページングが2ページ目以降の場合は、セッションから検索条件を読みだして利用するようにしています。

 //ページネートの場合のみ、検索条件を、セッションから読み出し
   if(isset($this->params['named']['page'])){
       $student_ids=$this->Session->read('student_ids');
    }
 //中略
   $this->paginate=array(            
     'Student'=>array(	
             'conditions'=>array('Student.student_id'=>$student_ids)
                                 ,'limit' => 100			
                                 ,'order' =>'Student.student_id'
                    )
     );
カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です