0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ページネーション(該当ページの最初と最後のデータは全データの中で何番目か実装する)

Posted at

##はじめに
下記画像のようにページネーションをしたときに該当ページの最初と最後のデータは全データの中で何番目か(N〜NN件/NNN件中のように)出したい時はありませんか。
スクリーンショット 2020-04-25 18.54.06.png
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()

と実装すると該当ページの最初と最後のデータは全データの中で何番目か取れます。

##おわりに
いかがでしたでしょうか。
フレームワークを使う場合はその特有の機能も使っていきたいですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?