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();
って感じらしいです。
もっとドキュメントしっかり読んで理解しないといけないですね。