我正在尝试为每个分支获取用户分支和用户分支以及工作时间。 我被困为work.hours关系模型返回与分支相关的所有用户的工作时间,我无法找到一种方法来获得与分支相关联的当前用户的工作时间。
我有三张桌子: -
Users (users)
id
firstname
lastname
Branch (branch)
id
user_id
branch_name
Branch Users (branch_users)
id
branch_id
user_id
Branch Working Hours (working_hours)
id
branch_id
user_id
day
time_from
time_to
UserController中: -
$user_id = $userId;
$data['doctorProfile'] = User::select(
'id',
'firstname',
'lastname'
)
->with([
'branches' => function($query){
$query->select(
'user_id',
'branch_id'
)
->whereHas('branch', function($q){
$q->where('status',1);
});
}
])
->find($userId);
用户模型: -
public function branches()
{
return $this->hasMany('App\Model\Api\BranchUser', 'user_id', 'id')->with([
'branch' => function($query){
$query->select(
'id',
'branch_name'
);
},
'workingHours' => function($query){
$query->select(
'branch_id',
'user_id',
'day',
'time_from',
'time_to'
);
}
]);
}
分支用户模型: -
public function branch()
{
return $this->belongsTo('App\Model\Api\Branch', 'branch_id', 'id');
}
public function workingHours()
{
return $this->hasMany('App\Model\Api\WorkingHour', 'branch_id', 'branch_id');
}