Cakephpではページネーション(ページ送り)の設定を柔軟に行うことが可能です。
今回はデータの取得方法をメモ。
コード
use Cake\ORM\TableRegistry;
・・・
class ArticlesController extends AppController
{
   
  //コントローラー共通の各ページでの表示件数指定
  public $paginate = [
        'limit' => 10,
  ];
  public function index(){
  $articlesTable = TableRegistry::getTableLocator()->get('Articles');
      //各ページの表示件数指定は関数内で個別に行うことも可能
      $this->paginate['limit'] = 20;
      // 記事取得(件数は関数内で指定した20件となる)
      $query = $articlesTable
         ->find()
         ->order(['modified' => 'DESC']);
       $articles = $this->paginate($query);
       $this->set(compact('articles'));
   }
}
解説
「paginate($query)」とする(18行目)ことでページネーションが設定される
ページごとに表示する記事件数は、Controller内で共通で指定する(5~7行目)ことも、関数内で個別指定する(11行目)ことも可能。
両方指定した場合には関数内で個別指定した件数が優先される。

 
  
  
  
  
コメント