Phalconを利用したページネーションの作成方法

Phalcon

PHPのフレームワークPhalconを利用している場合、ページネーションの実装がとても簡単にできます。ページネーションで利用するデータ型がオブジェクトか配列により実装方法がことなります。

以下の例はデータベースからオブジェクトでデータを取得した際に利用するページネーションです。

<?php
use Phalcon\Paginator\Adapter\Model as PaginatorModel;

// ページ数
$currentPage = 1;

$robots = Robots::find();

$paginator = new PaginatorModel(
    [
        "data"  => $robots,
        "limit" => 10,
        "page"  => $currentPage,
    ]
);

$page = $paginator->getPaginate(); 

データが配列の場合

以下はデータが配列の場合の手順です。注意点としてはデータの抽出にpaginate()を利用してデータを抽出します。

<?php

 use Phalcon\Paginator\Adapter\NativeArray;

 // ページ数
 $currentPage = 1;

 $paginator = new NativeArray(
     [
         'data'  => array(
             ['id' => 1, 'name' => 'Artichoke'],
             ['id' => 2, 'name' => 'Carrots'],
             ['id' => 3, 'name' => 'Beet'],
             ['id' => 4, 'name' => 'Lettuce'],
             ['id' => 5, 'name' => '']
         ],
         'limit' => 2,
         'page'  => $currentPage,
     ]
 );
 
 $page = $paginator->paginate(); 

まとめ

Phalconの公式ドキュメントにも記載はありますがわかりずらかったのでメモ代わりに掲載してみました。

タイトルとURLをコピーしました