Я пытаюсь получить профиль пользователя с ветками пользователей и рабочее время для каждой ветви.
Я застрял, так как модель отношений WorkingHours возвращает рабочее время для всех пользователей, связанных с филиалом, я не могу найти способ получить рабочее время для текущего пользователя, связанного с филиалом.
У меня есть три таблицы:
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');
}
Задача ещё не решена.
Других решений пока нет …