php – 在laravel关系集合上自定义排序
发布时间:2020-12-14 19:47:31 所属栏目:大数据 来源:网络整理
导读:我有点卡在通常很直接的事情上.我需要根据特定值和“排序顺序”数组将hasMany关系中的记录排序为自定义顺序. 我的代码不起作用,因为我传递了uSort()一个雄辩的集合,我不知道如何解决它. $go = $this-hasMany('Product')-orderBy('colour','DESC');$order = a
我有点卡在通常很直接的事情上.我需要根据特定值和“排序顺序”数组将hasMany关系中的记录排序为自定义顺序.
我的代码不起作用,因为我传递了uSort()一个雄辩的集合,我不知道如何解决它. $go = $this->hasMany('Product')->orderBy('colour','DESC'); $order = array('RED','GREEN','BLUE','YELLOW'); usort($go,function ($a,$b) use ($order) { $pos_a = array_search($a->colour,$order); $pos_b = array_search($b->colour,$order); return $pos_a - $pos_b; }); return $go; 也许我错过了一些惊人的laravel魔术助手,但我被困住了.任何想法或建议将不胜感激! 干杯
Collection的usort等价物是sort()方法.它将回调作为参数并返回已排序的集合.
所以在你的情况下,解决方案是: $go = $go->sort(function ($a,$b) use ($order) { $pos_a = array_search($a->colour,$order); $pos_b = array_search($b->colour,$order); return $pos_a - $pos_b; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |