Løsning:
$ids =array(1,17,2); $ids_ordered =implode(',', $ids); $items =static::whereIn('id', $ids) ->orderByRaw("FIELD(id, $ids_ordered)") ->get();
Yderligere bemærkninger:
Brug af løsningen fundet i en artikel med titlen Få alle varer på én gang ordnet efter den aktuelle rækkefølge af id'er i WHERE IN-klausulen ved hjælp af Eloquent :
// Rå SQL:// SELECT * FRA elementer WHERE id IN (1,2,3,4,5) ORDER BY FIELD(id,1,2,3,4,5); $itemIds =array(1,2,3,4,5); $ids =implode(',', $itemIds); $items =static::whereIn('id', $itemIds) ->orderByRaw(DB::raw("FIELD(id, $ids)")) ->take($limit) ->get();