Я пытаюсь преобразовать коллекцию Билеты со следующим кодом
public function transform(Ticket $ticket) {
return [
'id' => $ticket->id,
'title' => $ticket->title,
'status' => $this->transformerMessage($ticket->status),
'interactions' =>
$this->collection(
$ticket->interactions,
new InteractionTransformer(),
'interactions'
)
];
}
Но взаимодействия результат всегда пуст. Вот пример вывода, который я получаю:
{
"data": [
{
"id": 1,
"title": "Earum repudiandae corporis sapiente at odit itaque ratione.",
"status": "Open",
"interactions": {}
},
{
"id": 2,
"title": "Odit impedit vitae quo sit molestiae eius.",
"status": "Open",
"interactions": {}
},
{
"id": 3,
"title": "Fuga cum corrupti ut.",
"status": "Open",
"interactions": {}
}
]
}
если я попытаюсь умереть и бросить $ticket->interactions
переменная, я получаю коллекцию из 5 элементов (которая доказывает, что переменная не пустая).
Что я здесь не так делаю?
Спасибо за внимание.
$ This в вашем вызове коллекции ссылается на преобразователь, который наследует от TransformerAbstract, который создает коллекцию из типа Resource.
Попробуйте добавить -> getData () в конец, чтобы извлечь коллекцию REAL из коллекции ресурсов Dingo.
public function transform(Ticket $ticket) {
return [
'id' => $ticket->id,
'title' => $ticket->title,
'status' => $this->transformerMessage($ticket->status),
'interactions' =>
$this->collection(
$ticket->interactions,
new InteractionTransformer(),
'interactions'
)->getData()
];
}
Попробуйте это вместо этого. Обратный вызов, ссылающийся на преобразование динго:
public function transform(Ticket $ticket) {
$output = $ticket->interactions;
$trans = new InteractionTransformer();
return [
'id' => $ticket->id,
'title' => $ticket->title,
'status' => $this->transformerMessage($ticket->status),
'interactions' =>
$ticket->interactions->transform(
function($i) use ($trans) {
return $trans->transform($i);
}
)
];
}