Тип включаемых данных является нулевым с JsonApiSerializer в Fractal
Вот что я получаю в данный момент с помощью JsonApiSerializer of Fractal от Fractal в Laravel:
{
"type": "projects",
"id": "18",
"attributes": {
"name": "pariatur",
"parent_id": 1
},
"relationships": {
"tasks": {
"data": [
{
"type": null,
"id": "245"
}
]
}
}
}
],
"included": [
{
"type": null,
"id": "435",
"attributes": {
"name": "incidunt",
"content": "Laboriosam occaecati qui voluptas suscipit. Magni numquam incidunt pariatur et at. Alias molestias perspiciatis quae sit.",
"project_id": 12,
"due_at": "1971-05-19"
}
},
Я знаю, что вы можете установить тип для запрошенного ресурса следующим образом:
// Important, notice the Resource Key in the third parameter:
$resource = new Item($book, new JsonApiBookTransformer(), 'books');
$resource = new Collection($books, new JsonApiBookTransformer(), 'books');
Как я могу сделать это для включенных данных?
1 ответ
Для людей, которые могут наткнуться на это. Мне не хватало того, что вам нужно установить ressourceKey в соответствующем преобразователе, где вы вызываете collection() для включения данных. Имеет смысл конечно. В моем случае:
public function includeTasks(Project $project, ParamBag $paramBag)
{
list($orderCol, $orderBy) = $paramBag->get('order') ?: ['created_at', 'desc'];
$tasks = $project->tasks()->orderBy($orderCol, $orderBy)->get();
return $this->collection($tasks, App::make(TaskTransformer::class), 'tasks');
}