💬

レコードを新しい順に並び替えたり古い順に並び替えたり(Laravel Eloquent)

2021/03/22に公開

LaravelのEloquentでは、簡単に新しい順・古い順でソートできるので、
今回はその機能を実現するための「latest」と「oldest」の紹介を行います!

レコードを新しい順でソートするlatest

Eloquentのlatestを使えば、簡単にレコードを最新順に並び替えができます。

例えばこんな感じ

User::latest()->get();

いろいろ制約をつけた中でのレコードのソートももちろんできます。

User::where('gender', 1)->where('age', '>', 20)->latest()->get();

ちなみに、新しい順というのは、初期値はcreated_atのカラムを見るようになっています。
例えば updated_at の最新を見たい場合はこのようにします。

User::latest('updated_at')->get();

最新の1件だけ取得する場合は firstでOKですね!

User::latest('updated_at')->first();

レコードを古い順でソートするoldest

oldestを使えば簡単にレコードを古い順に並び替えができます。

例えばこんな感じ

User::oldest()->get();

こちらもいろいろ制約をつけた中での最新のレコードを取得することもできます。

User::where('gender', 1)->where('age', '>', 20)->oldest()->get();

こちらもlatestと同様で、初期値はcreated_atを見るようになっていますので、それ以外のカラムを参照したい場合は、引数を渡してあげてください。

終わりに

これを使用しなくても orderBy('created_at', 'desc') でソートできるのですが、
知っておくと簡潔に書けますし、 latest っていう名前でパット見分かりやすいですよね!

というわけで、ぜひ使ってみてください!

ではまた!

Discussion