Skip to content

CakePHP3用の検索条件をページング時に引き継ぐコンポーネント

License

Notifications You must be signed in to change notification settings

bluewhale1020/cake3_paging_support

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CakePHP 3 license

PagingSupportComponent For CakePHP3

概要

cakePHP3で、ページング時に検索条件を引き継ぐためのコンポーネントです。 元々cakephpのページング時の検索条件の引き継ぎで公開されているコードを、CakePHP3でも動作するように カスタマイズしました。


インストール

CakePHP3フレームワークのプロジェクトのsrc/Controller/Componentフォルダ内にdist/PagingSupportComponent.phpファイルを設置します。


利用方法

以下のように関連ファイルに追記します。

コンポーネントのインポート

    public function initialize()
    {
        parent::initialize();
		//PagingSupport の追加
        $this->loadComponent('PagingSupport');
        //
    }

コントローラー内で呼び出し

    public function index()
    {
        //コンポーネントを呼び出す文を追加
        $this->PagingSupport->inheritPostData();
        //
        
     	if(!empty($this->request->data)){
        	//検索条件処理等...            
        }
        $users = $this->paginate($query);
        $this->set(compact('users'));        
        
    }

$paginate コントローラー変数にparamTypeを追加

$this->paginate = [
 //paramTypeをquerystringに設定
 'paramType' => 'querystring'
 //
];

ビューの中でPaginatorのオプションにusePagingパラメータを追加

<ul class="pagination">
    <?php
    //optionsのurlにusePagingパラメータを追加
    $this->Paginator->options(['url'=> ['action'=>'index','usePaging'=>1]]); 
	//
	?>            
    <?= $this->Paginator->first('<< ' . __('最初')) ?>
    <?= $this->Paginator->prev('< ' . __('前')) ?>
    <?= $this->Paginator->numbers() ?>
    <?= $this->Paginator->next(__('次') . ' >') ?>
    <?= $this->Paginator->last(__('最後') . ' >>') ?>
</ul>

コンポーネント内の処理

  • 検索時に検索条件のリクエストデータをセッションに保存
  • ページング利用時にセッションから検索条件を読み取りリクエストデータに保存
  • 上記以外にセッションデータを削除

usePagingパラメータについて

上記2番目のページング利用の判断に使いますが、コンポーネント内では、リクエストパラムの"?"キー内に あるので、request->params['?']['usePaging']でアクセスしています。


参考URL

cakephpのページング時の検索条件の引き継ぎ

About

CakePHP3用の検索条件をページング時に引き継ぐコンポーネント

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages