Level 102
You can use dot notation to go deep
$centers = Centers::whereHas('subcenters')->with(['subcenters.subcenterrooms.subcenterroomslots'])->where('active',1)->get();
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I have three tables like below,
centers
id, centername
sub_centers
id, center_id, subcentername,address
sub_center_rooms
id,sub_center_id,room_name,capacity
sub_center_room_time_slots
id,sub_center_id,sub_center_room_id, start_time, end_time
In Center.php
public function subcenters()
{
return $this->hasMany('App\SubCenter','center_id','id');
}
In SubCenter.php
public function subcenterrooms()
{
return $this->hasMany('App\SubCenterRoom,'sub_center_id','id');
}
I want to fetch all linked data in one query how to do that? i tried code like below,
$centers = Centers::whereHas('subcenters')->with(['subcenters'])->where('active',1)->get();
Can i use belongsToMany in SubCenter.php modal?
so i should get data in below format,
id:
centername:
subcenters: [{
id:
subcentername:
subcenterrooms: [{
id:
roomname:
subcenterroomslots: [{
id:
starttime:
endtime:
}]
}]
}];
Any help?
@deekshith same
$centers = Centers::whereHas('subcenters.subcenterrooms.subcenterroomslots')->with(['subcenters.subcenterrooms.subcenterroomslots'])->where('active',1)->get();
Please or to participate in this conversation.