CakePHP(v3.x),paginatorのメタデータにアクセスする.

前回は2系のcakePHPでpaginatorのパラメータにアクセスする方法について書きましたが,3系でのpaginnatorメタデータへのアクセスの方法について書いていきたいと思います.

まず普通にPaginatorをcontrollerに実装していきます.

class ArticlesController extends AppController
{
    public $paginate = [
        'limit' => 25,
        'order' => [
            'Articles.title' => 'asc'
        ]
    ];

    public function initialize()
    {
        parent::initialize();
        $this->loadComponent('Paginator');
    }
    pubic function index()
    {
         // 抜粋
         $this->paginate($this->Articles);
         // 抜粋
    }
}

ここで,タイトルの昇順・降順がView側で変更できるようになっており,そのメタデータにコントローラからアクセスしたいときは以下のように書くと良いです.

    pubic function index()
    {
         // 抜粋
         $this->paginate($this->Articles);
         $params = $this->getRequest()->getParam('paging.Article');
         $this->log($params);
         // 抜粋
    }
}

すると以下のようにパラメータが取得できていると思います.

>>>
            [finder] => all
            [page] => 1
            [current] => 5
            [count] => 5
            [perPage] => 500
            [start] => 1
            [end] => 5
            [prevPage] => 
            [nextPage] => 
            [pageCount] => 1
            [sort] => tiitle
            [direction] => asc
            [limit] => 
            [sortDefault] => 
            [directionDefault] => 
            [scope] => 
            [completeSort] => Array
                (
                    [Article.title] => asc
                )