Я пытаюсь подтвердить это:
"Человек не может взять отпуск в определенный диапазон дат, если эта дата уже была взята"
Итак, если у меня есть что-то подобное в таблице отпусков
start_date | end_date | duration_days | user_id
--------------------------------------------------
01-01-2019 | 01-02-2019 | 30 | 1
03-02-2019 | 28-02-2019 | 15 | 2
12-12-2019 | 01-01-2020 | 20 | 3
Как видите, весь диапазон дат взаимоисключающий
И если я хочу добавить еще одну строку, я должен подтвердить это (я думаю, что, если я ошибаюсь, пожалуйста, исправьте меня):
start_date
- не в :
[{01-01-2019;01-02-2019}, {03-02-2019;28-02-2019}, {03-02-2019;28-02-2019}].
end_date
is not in :
[{01-01-2019;01-02-2019}, {03-02-2019;28-02-2019}, {03-02-2019;28-02-2019}].
Перенос всей этой логики в laravel в VacationController store:
public function store(Request $request, $user_id)
{
$dates_taken = Vacation::all('start_date', 'end_date');
$request->validate([
'start_date' => 'required|date|not_in:'.$dates_taken,
'end_date' => 'required|date|not_in:'.$dates_taken',
]);
}
Я знаю, что проверка неверна, но я хотел понять проблему.
Есть какой-то способ сделать это с помощью проверки ларавеллы ?