我有一个按以下顺序查询
$query->orderByRaw("FIELD(type, 'red', 'green', 'aqua') ASC");
这将按字母顺序排列项目,但具体取决于值。
有没有办法在Laravel
集合中做同样的事情?
像:
$collection = collect(`Items from DB`);
$final = $collection->sortBy(function($item){
return $item->color == 'red'
});
答案 0 :(得分:1)
找到解决方案:
$collection = collect(`Items from DB`);
$final = $collection->sortBy(function($model){
return array_search($model->color, ['red', 'green', 'aqua']);
});
array_search返回项目位置(键),因此如果模型颜色为red
,则键为0,依此类推。这将命令它。
如果有其他解决方案(可能更快),请发布它们,谢谢。