Конечно, у вас есть правильный код, чтобы увидеть, есть ли уже Наблюдение . Теперь вам просто нужно проверить, есть ли Сидящее для этого ученика в тот же день, что и Наблюдение . Итак:
if (!$exists){
$sitting = Training::where('fk_student', $request->get('fk_student'))
->where('date_sitting', , '=', **SOME formatted DATE**)->first();
if(isset($sitting)){ // If we have a match to student on the requested date, no good, return.
return redirect()->route('observations.index')
->with('error', 'You already have a sitting for this date!');
}
Проблема в том, что когда вы говорите:
Моя проблема в том, что я могу добавить 2 заседания по датам для 1 наблюдения за одной и той же датой.
Я не знаю, какая дата является «той же датой». Дата совпадает с тем, что пользователь отправляет через форму для запроса Заседание ? Или установить дату на Наблюдение ? IE, я думаю, вам нужно решить, с какой датой вы сравниваете - в вашем коде нет входящей даты. Вам нужно сравнить дату (вероятно, из пользовательской формы, введенной в объект $request
, введенный в метод store()
), чтобы код, приведенный выше, работал.