PR

【Laravel】orderByメソッドとは?使い方を解説

アイキャッチ画像
この記事で解決できる悩み
  • LaravelのorderByメソッドの使い方が分からない

こんな悩みを解決します。

いのうえ
いのうえ

こんにちは、学生フリーランスエンジニアのいのうえ(@inouelog)です!

LaravelのorderByメソッドとは、一言で言うとレコードの並べ替えを行うメソッドです。レコードとは、データベースの行のことです。

この記事では、LaravelのorderByメソッドの使い方を解説します。

LaravelのorderByメソッドとは

orderByメソッドでは第1引数に基準にしたいカラム、第2引数に降順か昇順か指定します。カラムとは、データベースの列のことです。
例:orderBy(‘id’, ‘desc’)

降順とは「大きい→小さい」、昇順とは「小さい→大きい」となる順番のことです。

LaravelのorderByメソッドの使い方

例えば、次のようなテーブルがあるとします。

あるお店で販売しているフルーツとその値段:fruitsテーブル

idnamepricecreated_atupdated_at
1ぶどう17002021-06-07 12:30:002021-06-12 06:30:00
2なし6002021-06-08 12:30:002021-06-13 06:30:00
3マンゴー9002021-06-09 12:30:002021-06-14 06:30:00
4さくらんぼ12002021-06-10 12:30:002021-06-15 06:30:00
fruitsテーブル

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メソッドとは?使い方を解説』でした。