新年一発目。昨年のうちに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 で書かれた参考書がほしい・・・
コメント