Laravel Eloquent whereIn return 按顺序给出

Laravel Eloquent whereIn return in order given

我正在尝试按照 whereIn

传递的数组的顺序对集合进行排序

我的代码:

Posts::whereIn('id', [80, 40, 30, 100])->get()

我希望收集到 return ID 顺序为 80、40、30、100 的帖子,但它按升序排列为 30、40、80、100。我如何按我希望的顺序收到结果?

试试这个查询 -

$ids = [80, 40, 30, 100];
$implodedIds = implode(',', $ids);

Posts::whereIn('id', $ids)->orderByRaw(DB::raw("FIELD(id, $implodedIds)"))->get();