こんな悩みを解決します。
いのうえ
こんにちは、学生フリーランスエンジニアのいのうえ(@inouelog)です!
LaravelのorderByメソッドとは、一言で言うとレコードの並べ替えを行うメソッドです。レコードとは、データベースの行のことです。
この記事では、LaravelのorderByメソッドの使い方を解説します。
LaravelのorderByメソッドとは
orderByメソッドでは第1引数に基準にしたいカラム、第2引数に降順か昇順か指定します。カラムとは、データベースの列のことです。
例:orderBy(‘id’, ‘desc’)
LaravelのorderByメソッドの使い方
例えば、次のようなテーブルがあるとします。
あるお店で販売しているフルーツとその値段:fruitsテーブル
id | name | price | created_at | updated_at |
1 | ぶどう | 1700 | 2021-06-07 12:30:00 | 2021-06-12 06:30:00 |
2 | なし | 600 | 2021-06-08 12:30:00 | 2021-06-13 06:30:00 |
3 | マンゴー | 900 | 2021-06-09 12:30:00 | 2021-06-14 06:30:00 |
4 | さくらんぼ | 1200 | 2021-06-10 12:30:00 | 2021-06-15 06:30:00 |
nameを降順(名前が長い順)に並べ替えて取り出す
$fruits = Fruit::orderBy('name', 'desc')->get();
priceを昇順(値段が小さい順)に並べ替えて取り出す
$fruits = Fruit::orderBy('price', 'asc')->get();
created_atを降順(登録されたのが新しい順)に並べ替えて取り出す
$fruits = Fruit::orderBy('created_at', 'desc')->get();
新しい順/古い順は、latest/oldestメソッドを使って次のように書くことも出来ます。
// 新しい順
$fruits = Fruit::latest()->get();
// 古い順
$fruits = Fruit::oldest()->get();
いのうえ
latest/oldestメソッドを使ったほうがスッキリしていますね。
また、orderByメソッドでレコードを並べ替えてから、指定したカラムで重複を削除するgroupByメソッドを使うことも多いです。
まとめ
Laravelでデータベースとやり取りするときに、orderByメソッドは高頻度で使うので、習得しておきましょう!
以上、『【Laravel】orderByメソッドとは?使い方を解説』でした。