У меня есть коллекция ресурсов, чтобы получить все мои диалоги. Поскольку внешний интерфейс уже закодирован (другим человеком), я хочу вернуть все эти объекты в виде объекта, с аргументом dialog_id базы данных в качестве ключей и объектом диалога в качестве значений.
Но когда я хочу преобразовать массив, который я получил из своей коллекции ресурсов (с (object) $ array), он все еще возвращает массив без любого из ключей, которые я установил.
В моей функции контроллера я вызываю:
return new DialogueResourceCollection($dialogues);
Мой ресурс коллекции выглядит следующим образом:
class DialogueResourceCollection extends ResourceCollection
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
$array = [];
for ($i = 0; $i < sizeof($this); $i++) {
$j = $this[$i]->dialogue_id;
$array[$j] = $this[$i];
}
return $array;
}
}
Что я получаю:
[
{
"dialogue_id": 1,
"text": "example text"
},
...
Что я хочу получить:
{
"34" : {
"dialogue_id": 34,
"text": "example text"
},
...
}