Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 01.04.2021 08:33:57

Список класса Items в той последовательности что в коллекции $collecti

Добрый день!

Не могу в интернете найти решение:

Есть коллекция:
Она заполняется в функции у меня

$links = Item::where()... с моими фильтрами
$links = Link::where()... с моими фильтрами

$collection = collect();

$str = "";
foreach ($items as $item) {
$str = "";
foreach ($links as $link) {
$item_find = GlobalController::view_info($item->id, $link->id);
$str = $str . trim($item_find['name']);
}
}
// В $collection сохраняется в key - $item->id
$collection[$item->id] = $str;
}

// Сортировка коллекции по значению
$collection = $collection->sort();

примерно так заполняется(для примера):
$collection = ['Fff', 'Aaa', 'Bbb', 'Zzz', 'Ggg'];
В качестве ключей коллекции - коды $item->id

Потом сортируется по наименованию:
$collection = $collection->sort();

$collection = ['Aaa', 'Bbb', 'Fff', 'Ggg', 'Zzz'];

И мне нужно получить список всех Items с такими кодами и в такой же последовательности как в коллекции.

(Сортировать типа в Item::all()->orderBy - этот вариант мне не подходит, результат есть в коллекции)

Вот команда:
$results = Item::whereIn('id',$collection->keys())->get();

Она работает, но мне нужно список Items в той последовательности что в коллекции $collection,
т.е. в алфавитном порядке,
а она возвращает в том порядке, в котором сохранены в таблице базы данных.

Как это сделать? Список Items в той последовательности что в коллекции $collection?

Не в сети

Подвал раздела