Привет. Ребят подскажите пожалуйста.
Есть дата: 1 декабря и есть учебная программа которая начинается в марте, но у института который является владельцем программы есть поле months_max, необходимо следущее:
взять 1 (будет первый месяц) добавить к нему 6 и если программа попадает в этот диапазон то ее выводим, а если нет, то пропускаем.
в выборке идет поиск по программам которые belongsTo институт который имеет это поле.
->when(isset($request->startt_date), function($q) use ($request) {
и тут я подзалип, подскажите как быть пожалуйста
})
парсинг даты $date = Carbon::parse(...)
(смотри что туда передаёшь. это не магическая функция. ищи в доках если у тебя не стандартная "англоязычная дата" или если у тебя дата не в iso формате)
возможно ты хочешь что-то типа $date = Carbon::parse($request->get('date_field'))
карбон умеет сдвигать дату туда и и обратно
$date->subDays(5)
- 5 дней из даты (подставь Month, Year и будешь двигать месяцами и годами)
$date->addDays(5)
+5 дней для этой даты
для определения промежутка дат тебе надо 2 даты. $start_date = ...; $end_date = ...;
допустим.
потом для QueryBuilder'а (который у тя в переменной $q
) ты пишешь что-то типа
$q->whereBetween('table_date_field', [$start_date, $end_date])
PS лучше юзай $request->has('...')
а не isset
PPS carbon даты мутабельны