Я пытаюсь получить коллекцию members
через мое модельное агентство (hasMany()
).
members
связано с отношениями Agency
через hasMany()
, и я извлекаю их так:
$members = $this->model->where("id", $agencyId)->firstOrFail()->members();
В моем классе модели Member. php я реализую JSONSerializable с помощью следующего метода:
public function jsonSerialize()
{
$agency = $this->agency()->first();
return [
'member_id' => $this->member_id,
'name' => $this->name(),
'surname' => $this->surname(),
'email' => $this->email(),
'active' => $this->active,
'agency' => [
'id' => $agency->id,
'name' => $agency->name,
]
];
}
Однако эта сериализация никогда не выполняется вызывается, когда я пытаюсь получить членов следующим образом:
$members = $this->model->where("id", $agencyId)->firstOrFail()->members();
return $members->paginate(
$pageSize,
['*'],
'page',
$pageNumber
);
Ответ:
"current_page": 1,
"data": [
{
"member_id": "0315c19f-8f5c-467a-97fd-a0422f5e14a5",
"user_id": "77b36a51-4b86-34be-9a76-856ca68c3a1e",
"agency_id": "d8c0cfab-686c-3b40-90ea-8bf52f07a3a0",
"active": true,
"deleted_at": null,
"created_at": "2020-04-30 15:20:38",
"updated_at": "2020-04-30 15:20:38"
},
{
"member_id": "f522914d-17cd-470d-a5d6-365930958a29",
"user_id": "994ca229-554e-3ae9-8459-24dc1479d75c",
"agency_id": "d8c0cfab-686c-3b40-90ea-8bf52f07a3a0",
"active": true,
"deleted_at": null,
"created_at": "2020-04-30 15:20:38",
"updated_at": "2020-04-30 15:20:38"
}
],
"first_page_url": "\/agency\/d8c0cfab-686c-3b40-90ea-8bf52f07a3a0\/members?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "\/agency\/d8c0cfab-686c-3b40-90ea-8bf52f07a3a0\/members?page=1",
"next_page_url": null,
"path": "\/agency\/d8c0cfab-686c-3b40-90ea-8bf52f07a3a0\/members",
"per_page": 50,
"prev_page_url": null,
"to": 2,
"total": 2
}
Почему метки времени и т. c. показано в данных участника? Почему не используется метод jsonSerialize?