conocode
このコード
How to

Laravel で アイテムをゲットするときに指定した順番でソートしたい

Laravel の select で 昇順や降順ではなく、指定した順番にソートしたいんですけど
それなら orderByRaw で可能だよ

Laravel で 特定のカラムの値で並べ替えて取得したい場合は以下のように orderBy を使って参照するカラムと並べ替えの種類を指定します。

こうすると、カラムの値をみて、昇順や降順などで並べ替えて結果を取得できます。

でも、とあるカラムを指定の順に並べたいという場合はどうすれば良いのでしょうか?

たとえば Fruit という Model があり、Apple、Orange、Grape、の順になるように取り出したいような場合です。

そのような場合は orderByRaw メソッドで、優先順を指定(ORDER BY CASE)してあげます。
具体的には

としてやれば、特定の順番にソートされたものを取得することができます