我正在寻找一种解决方案,以使用map
函数和toArray()
的关系按字母顺序对制造商列表进行排序。这是代码示例:
$manufacturers = Manufacturer::with('translation')
->get()
->map(function ($m) {
return ['key' => $m->getName(), 'value' => $m->id];
})
->pluck('key', 'value')
->prepend('Choose manufaturer', '')
->toArray();
然后在视图中创建选择列表:
我试图将orderBy添加到这样的翻译中:
$manufacturers = Manufacturer::with(['translation' => function ($q) {
$q->orderBy('name', 'ASC');
}])->get()
// code cutted here (same as above)
代码未显示错误,但未排序。我猜每个制造商集合都有它自己的翻译,并且在每个制造商中的订购要比整个列表中的订购要多。
这里是dd($ manufacturers):
我也在考虑两个解决方案-像其他开发人员一样在stackoverflow上添加join来查询查询或在php中排序似乎是个坏主意。有没有针对此问题的“简单”解决方案?