を照会するとき、次のように私はidのコレクションを持っている順序を失い:Laravelは
array:2 [
0 => "102"
1 => "101"
]
そのための事項を注意してください。
私はのようなモデルを照会する場合:
$models = Post::whereIn('id', $keys)->get();
それは順序を失います。
だから私は、idが102の投稿は101の前に来るが、101が最初に来ると思う。
$ids_ordered = implode(',', $keys);
$models = Post::whereIn('id', $keys)
->orderByRaw(DB::raw("FIELD(id, $ids_ordered)"))
->get();
参考:私は
$models = Post::whereIn('id', $keys)->orderBy('id', 'ASC')->get();
'IN'ステートメント内のIDの順序は、結果の順序を決定しません。これを達成するには、 'orderBy'ステートメントを使う必要があります。 –
例を挙げることはできますか? – Mehrdad
それはあなたの結果を何で注文しようとしているのですか?その場合は、ドキュメント[こちらをご覧ください](https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset)。 –