くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

LaravelのPagenate()で取得したオブジェクトの値にアクセスする方法

LaravelのPagenate()で取得したオブジェクトの値にアクセスする方法

について調べたのでメモ。

例えばユーザーモデルからpagenate()メソッドを使ってユーザーのリストを取得して取得した件数を見たい場合、

$user_list = $this->userModel->pagenate(20, $select);
echo $user_list->total;

というようにすると

Cannot access protected property Illuminate\Pagination\Paginator::$total

みたいなエラーが出ます。get()で取得した時は$user_list->totalで値にアクセスできたのに...と思いながらも、

echo $user_list->toArray()['total'];

みたいなダサい書き方しか無いのかと思っていました。

なんか方法ないのかなーと思ってドキュメント調べてみたらやっぱりあった笑
ペギネーション

// 総合件数
echo $user_list->getTotal();
// 現在ページ
echo $user_list->getCurrentPage();
// 最終ページ
echo $user_list->getLastPage();
// 1ページあたりのレコード数
echo $user_list->getPerPage();
// 何レコード目からか
echo $user_list->getFrom();
// 何レコードまでか
echo $user_list->getTo();
// count
echo $user_list->count();

って感じらしいです。
もっとドキュメントしっかり読んで理解しないといけないですね。