Привет! Я пытаюсь вернуть Расписание пользователей, если оно больше или равно текущей дате, или если это расписание содержит отношение (ScheduledYard), которое не завершено:
$schedules = Auth::user()
->schedules()
->where('due_at', '>=' , Carbon::now())
->orWhereHas('scheduledYards', function ($query) {
$query->where('completed', false);
})->get();
$schedules = $schedules->sortBy('due_at');
return ScheduleResource::collection($schedules);
Это прекрасно работает,но по какой-то причине он дублирует это для каждого пользователя, к которому он присоединен.т. е. если 3 пользователя имеют это расписание, то оно будет возвращено 3 раза для аутентифицированного пользователя.
Модель пользователя:
public function schedules()
{
return $this->belongsToMany('App\Models\Schedule');
}
Модель расписания:
public function users() {
return $this->belongsToMany('App\Models\User');
}
Если яудалите orWhereHas (), он вернет один объект.Что я здесь не так делаю и как я могу вернуть один объект, основываясь на вышеуказанных требованиях?