Help us understand the problem. What is going on with this article?

Laravel5.5 配列を用いたページネーション

今回の題

Eloquent モデルとクエリビルダに対しては paginate() メソッドを使えばあっという間に実装できる。
めちゃくちゃ簡単で便利。

が。
配列を使ったページネーションはどうやるんだ?と考えたときに少し苦労したので自分用にメモ。
Twitter apiで遊んでいて、取得したツイートをページ上で一覧表示させたくて使いました。

方法

LengthAwarePaginatorを使います。
公式のリファレンスに情報が少なすぎ……。

use Illuminate\Pagination\LengthAwarePaginator;


//配列($array)をコレクションに変換
$colect = collect($array); 
$colect_result = new LengthAwarePaginator(
                $colect->forPage($request->page, 20),
                count($colect),
                20,
                $request->page,  
                ['path' => $request->url()]
              );

1ページあたりの表示数は、LengthAwarePaginatorの第一引数と第三引数にある数字を好きな数字に変えてあげると変更できます。この記事だと1ページあたり20件。

こいつをviewに渡して、リンクを表示させたい箇所に{{ $colect_result->links() }}を書いてあげれば完成。

kuzira_saito
主にPHPを学んでいる大学生。 fwはcakeとlaravel。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした