Измените структуру ответа с помощью Eloquent: API Resources
Я новичок в Laravel. Я использую laravel в качестве конечной точки REST, я использую Eloquent: ресурсы API для преобразования моих данных в JSON.
Я использую коллекцию и ресурс для анализа данных, полученных из моего запроса. Итак, ниже представлена структура моего ответа:
data:
0
id
name
1
id
name
Теперь мне нужно иметь некоторую категоризацию данных, поэтому я требую, чтобы структура данных была в формате ниже
data:
24H
0
id
name
1
id
name
7D
0
id
name
1
id
name
Я попробовал несколько способов добиться этого. Статический способ, который я пробовал для тестирования, заключался в изменении метода toArray ResourceCollection и добавлении ключа 24H для данных, которые мы получаем.
Но я знаю, что это неправильный и общий способ.
Я хотел бы знать, как я могу достичь указанного выше формата ответа в универсальном и расширяемом виде.
Ваша помощь очень ценится.
Спасибо.
1 ответ
В коллекциях Laravel есть метод groupBy, который может вам помочь, убедитесь, что столбец, который вы хотите использовать в качестве ключа, также выбран. Итак, если у вас есть
data:
0:
id: 1
name: Bob
category: 24H
1:
id: 2
name: Bill
category: 7D
потом $data->groupBy('category')
вернет следующее
data:
24H:
0:
id: 1
name: Bob
category: 24H
7D:
0:
id: 2
name: Bill
category: 7D