[Laravel]指定のレコードだけは先頭にして抽出する方法

はじめに

Laravelを使用していてDBからレコードを抽出してきた際に指定のレコードだけを先頭にしたいということがあったためその時のめも。

例えば以下のレコードがあったとして

idnamepoint
1東京支店100
2本店10
3大阪支店80
4名古屋支店80

IDが2の本店だけは先頭ににしてあとはpoint順にしたいというパターン。
pointは例えるなら各店舗毎の成績と見立てると、成績順にソートしたいけど、本店だけは必ず一番最初にしたい。ということ。

方法

以下のコードのようにします。
$storesは成績順(point)で抽出したModelのCollectionとします。

sortを使用します。先に成績順(point)で抽出済みなのであとは本店(id=2)を先頭に持ってくるだけ。

以上です。

おすすめの記事