class UserResource extends JsonResource {
public function toArray(Request $request): array {
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'posts' => PostResource::collection($this->whenLoaded('posts')),
'links' => ['self' => route('users.show', $this)],
];
}
}
// Использование
return new UserResource($user);
return UserResource::collection(User::paginate(15));Resources - трансформационный слой между моделями и JSON-ответами API. Контролирует, какие данные и в каком формате отдаются клиенту.