laravel关系集合上的自定义排序

我有点被一些通常很直截了当的东西卡住了。我需要根据某个值和“排序顺序”数组将hasMany关系中的记录排序为自定义顺序

我下面的代码不起作用,因为我正在传递uSort()一个有说服力的集合,我不知道如何绕过它

$go=$this->拥有许多(“产品”)->订货人('color','DESC');
$order=数组('红色'、'绿色'、'蓝色'、'黄色');
usort($go,function($a,$b)use($order){
$pos_a=数组搜索($a->颜色,$order);
$pos_b=数组搜索($b->颜色,$order);
返回$POSU a-$POSU b;
});
返回$go;

也许我错过了一些神奇的拉威尔魔法助手,但我被卡住了。任何想法或建议将不胜感激

干杯

usort相当于集合的sort()方法。它将回调作为参数并返回已排序的集合

因此,在您的情况下,解决方案是:

$go=$go->排序(函数($a,$b)使用($order){
$pos_a=数组搜索($a->颜色,$order);
$pos_b=数组搜索($b->颜色,$order);
返回$POSU a-$POSU b;
});

发表评论