Я ищу решение для сортировки по алфавиту списка производителей, используя отношения, map
функция и toArray()
. Вот пример кода:
$manufacturers = Manufacturer::with('translation')
->get()
->map(function ($m) {
return ['key' => $m->getName(), 'value' => $m->id];
})
->pluck('key', 'value')
->prepend('Choose manufaturer', '')
->toArray();
А позже в поле зрения создается список выбора:

Я попытался добавить заказ к переводу следующим образом:
$manufacturers = Manufacturer::with(['translation' => function ($q) {
$q->orderBy('name', 'ASC');
}])->get()
// code cutted here (same as above)
Код не показывает ошибки, но не упорядочивает. Я полагаю, что у каждой коллекции производителей есть свой перевод и порядок у каждого производителя, чем во всем списке.
Вот дд ($ производителей):

Я также думаю о двух решениях - добавить объединение в запрос, как это делали немногие разработчики в stackoverflow, или сортировать в php, что кажется плохой идеей. Есть ли «простое» решение этой проблемы?