我有以下订单的查询
$query->orderByRaw("FIELD(type, 'red', 'green', 'aqua') ASC");
这将不按字母顺序排列项目,而是按值排序。
有没有办法在Laravel
收藏中做同样的事情?
像:
$collection = collect(`Items from DB`);
$final = $collection->sortBy(function($item){
return $item->color == 'red'
});
我有以下订单的查询
$query->orderByRaw("FIELD(type, 'red', 'green', 'aqua') ASC");
这将不按字母顺序排列项目,而是按值排序。
有没有办法在Laravel
收藏中做同样的事情?
像:
$collection = collect(`Items from DB`);
$final = $collection->sortBy(function($item){
return $item->color == 'red'
});
找到了解决方案:
$collection = collect(`Items from DB`);
$final = $collection->sortBy(function($model){
return array_search($model->color, ['red', 'green', 'aqua']);
});
array_search返回项目位置(键),所以如果模型颜色是red
键是 0 等等。这将订购它。
如果有其他解决方案(可能更快),请发布它们,谢谢。