LaravelでEloquentを使用して降順の並び替えとページネーションを行う方法


LaravelのEloquentを使用して、データベースからデータを降順に並び替えてページネーションする方法を以下に示します。

php artisan make:model BlogPost

このコマンドを実行すると、app/ModelsディレクトリにBlogPost.phpというファイルが生成されます。このファイル内で、BlogPostモデルの属性やリレーションシップを定義します。

次に、降順に並び替えたいカラムを指定して、orderByDescメソッドを使用します。例えば、created_atカラムで降順に並び替える場合は、以下のようになります。

$posts = BlogPost::orderByDesc('created_at')->paginate(10);

このコードでは、BlogPostモデルのcreated_atカラムで降順に並び替えた結果を取得し、paginateメソッドを使用してページネーションされた結果を取得しています。paginateメソッドの引数には、1ページに表示するアイテムの数を指定します。

最後に、取得した結果をビューに渡して表示します。例えば、ブレードテンプレートを使用して表示する場合は、以下のようになります。

@foreach ($posts as $post)
    <p>{{ $post->title }}</p>
    <p>{{ $post->content }}</p>
@endforeach
{{ $posts->links() }}

このコードでは、$posts変数にページネーションされた結果が渡され、foreachメソッドを使用してページネーションのリンクを表示しています。

以上が、LaravelでEloquentを使用して降順の並び替えとページネーションを行う方法です。