FuelPHP1.7のページネーション[FuelPHP入門]

新年一発目。昨年のうちにWEBサービス作って公開したかったけど無理でした。

1月中だ!1月中に公開する!

今回はFuelPHPのページネーションについて。

「FuelPHP入門」という参考書ではブログサンプルを作る。
FuelPHP1.7で「FuelPHP入門」のブログサンプルではバージョンの違いで色々ハマってしまった。

ページネーションの設定もバージョンの違いがある。
FuelPHPのソースをそのまま使っても、FuelPHP1.7じゃ動かない・・・

1.ページネーションの設定

ページネーションとは、1ページで表示しきれないデータを「次へ」などのリンクによって前後に動かす機能。

「前へ 1 2 3 4 5 次へ」みたいなものが Googleで検索した画面の下に表示されてる。
この機能をページネーションと呼ぶ。

FuelPHPではこの機能を標準で備えてる。
ページネーションの設定は Paginationクラスを利用する。

FuelPHP1.7ではどうやるんだろう。
そんなときは公式ドキュメントを参考にする。

// 設定
$config = array(
 'pagination_url' => 'http://localhost/fuel/welcome/index/',
 'total_items' => 10,
 'per_page' => 5,
 'uri_segment' => 3,
 // もしくは、クエリ文字列によるページネーションがよいのであれば
 //'uri_segment' => 'page',
 );

// 'mypagination' という名前の pagination インスタンスを作る
 $pagination = Pagination::forge('mypagination', $config);

$data['example_data'] = DB::select('id', 'value')
 ->from('pagination')
 ->limit($pagination->per_page)
 ->offset($pagination->offset)
 ->execute()
 ->as_array();

// オブジェクトを渡し、ビューの中に echo で出力される時に表示される
 $data['pagination'] = $pagination;

$configではページネーションの設定を行なっている。
各設定項目は FuelPHPのPaginationクラス | WinRoad徒然草でとても詳しく解説されてる。

その$configを元に、ページネーションのインスタンスを作成。

取得するデータをインスタンスに設定した値から制限( limit, offset )する。
limitには1ページに表示する件数を、offsetには何件目から表示するか(データを取ってくるか)を、指定している。

そして最後に viewに渡す配列($data)にデータを渡している。

viewファイルには以下を記述。

// Contorllerで定義した「mypagination」を呼び出し表示する。
<!--?php echo Pagination::instance('mypagination')--->render(); ?>

これでページネーションが表示された。

FuelPHP1.7 で書かれた参考書がほしい・・・

参考

Pagination – クラス – FuelPHP ドキュメント

FuelPHP1.6、Paginationクラスを理解する。|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~

コメント

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