##はじめに
下記画像のようにページネーションをしたときに該当ページの最初と最後のデータは全データの中で何番目か(N〜NN件/NNN件中のように)出したい時はありませんか。
ControllerやModelなどで値をわざわざ取得しなくてもLaravelのフレームワークを用いて値を取得することができます。
##フレームワークを覗いて実装してみる
Laravelのフレームワークにはページネーションに必要な要素が元々実装されています。
※全体はこちらから確認してください。
Illuminate\Pagination;
/**
* Get the instance as an array.
*
* @return array
*/
public function toArray()
{
return [
'current_page' => $this->currentPage(),
'data' => $this->items->toArray(),
'first_page_url' => $this->url(1),
'from' => $this->firstItem(),
'next_page_url' => $this->nextPageUrl(),
'path' => $this->path(),
'per_page' => $this->perPage(),
'prev_page_url' => $this->previousPageUrl(),
'to' => $this->lastItem(),
];
}
ここにあるのを使って
page.twig
data.firstItem()
data.lastItem()
data.total()
page.blade.php
data->firstItem()
data->lastItem()
data->total()
と実装すると該当ページの最初と最後のデータは全データの中で何番目か取れます。
##おわりに
いかがでしたでしょうか。
フレームワークを使う場合はその特有の機能も使っていきたいですね。