Articles::paginate(10)
このコードは最初の10個の記事を返しますが、次の10個の記事をルートで返したい場合はどうすればよいですか?たとえば、URL _mypage.com/articles/2
_は、データベースから2番目の10件の記事を返します。
これは私が今のところ持っているものです:
ルート:
_Route::get('articles/{page_number}', 'Controller@getArticles')
_
コントローラー:
_public function getArticles($page_num)
{
$perPage = 10;
Articles::getPaginator()->setCurrentPage($page_num);
$articles = Articles::paginate($perPage);
return $articles;
}
_
Articles::pageNumber($page_number)->paginate($perPage);
のようなものをもらえますか?
Laravel paginatorは、クエリ文字列のpage
の値を自動的にチェックし、それを使用して結果をページ付けします。結果はまた、あなたがそれらを直接追加するのを助けるために次と前のリンクを自動的に生成します。それを機能させるために何も変更する必要はありません。
あなたの場合、ビューで$articles->links()
を使用して、ページネーションナビゲーションボタンを生成できます。ただし、ページを手動で設定する場合は、これを行うことができます。
_$articles = Articles::paginate(5, ['*'], 'page', $pageNumber);
_
デフォルトのpaginateメソッドは、次のパラメーターを取ります。
_public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null);
_
デフォルトの規則は
_mypage.com/articles?page=2
mypage.com/articles?page=3
_
また、$articles->links()
を使用してナビゲーションボタンを生成する場合は、cssをカスタマイズすることもできます。
詳細については https://laravel.com/docs/5.4/pagination をチェックしてください