前提
Laravelのコレクションメソッドの1つであるsortByを使った結果をソートしている時につまずいたので、解決法を備忘録として残します。
問題点
- sortByを使うとコレクション内の並び順は下記のように変更されるのですが、JSON化するともとに戻ってしまう
-
前
[0] aaaa [1] bbbb
-
後
[1] bbbb [0] aaaa
-
解決法
// valuesメソッドを使い、並び替えた結果をもとに採番し直します
$hoge = $hogeModel->hogehoge()->sortByDesc('priority')->values();
参考
- CollectionをソートするとJSONがオブジェクトになる件
- valuesメソッド