LaravelEloquentでクエリ結果を制限してページ分割する方法
このシリーズを通して、Laravel Eloquentのいくつかの機能をテストするために、デモアプリケーションに新しいリンクを追加してきました。 アプリケーションに表示されるリンクの数に制限がないため、新しいリンクを追加するたびにメインのインデックスページが長くなることに気付いたかもしれません。 データベースエントリの数が少ない場合は問題になりませんが、長期的にはページの読み込み時間が長くなり、コンテンツの量が増えるためにレイアウトが読みにくくなる可能性があります。単一のページ。
シリーズのこのパートでは、limit()
メソッドを使用してLaravelEloquentクエリの結果の数を制限する方法と、simplePaginate()
メソッドを使用して結果をページ分割する方法を学習します。
クエリ結果の制限
開始するには、メインのアプリケーションルート(/
)を更新して、インデックスページに表示されるリンクの数を制限します。
コードエディタでWebルートファイルを開くことから始めます。
routes/web.php
次に、メインルートの定義を見つけます。
ルート/web.php
Route::get('/', function () {
$links = Link::all()->sortDesc();
return view('index', [
'links' => $links,
'lists' => LinkList::all()
]);
});
強調表示された行は、Link
モデルall()
メソッドを介して現在データベースにあるすべてのリンクを取得するクエリを示しています。 このシリーズの前のパートで説明したように、このメソッドは親Model
クラスから継承され、そのモデルに関連付けられたすべてのデータベースレコードを含むコレクションを返します。 sortDesc()
メソッドは、結果のコレクションを降順でソートするために使用されます。
ここで、強調表示された行を変更して、データベースクエリの並べ替え方法orderBy()
を使用します。この方法では、[ X242X]