You can avoid N+1 queries in API resources by using the whenLoaded() method.
This will only append the department if it’s already loaded in the Employee model.
Without whenLoaded() there is always a query for the department
class EmployeeResource extends JsonResource{ public function toArray($request): array { return [ 'id' => $this->uuid, 'fullName' => $this->full_name, 'email' => $this->email, 'jobTitle' => $this->job_title, 'department' => DepartmentResource::make($this->whenLoaded('department')), ]; }}
Tip given by @mmartin_joo
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses
[NEW] Laravel AI SDK: 6 Practical Examples
9 lessons
1 h 02 min
Livewire v3 to v4: Changes You Need to Know
7 lessons
31 min
PhpStorm Junie AI for Laravel Projects: Crash Course
7 lessons
36 min