Я думаю, что ваша логика в порядке.Однако вы, вероятно, хотите использовать вместо него Carbon .Он имеет метод parse()
, который вы ищете.Также addDays()
и toDateString()
.
Итак, в верхней части файла добавьте следующее утверждение:
use Carbon\Carbon;
, а затем измените свой метод validateDate()
на этот:
public function validateDates(Request $request)
{
$after_date = Carbon::parse($this->departureDate)->addDays(3)->toDateString();
$max_days = Carbon::parse($this->departureDate)->addDays(180)->toDateString();
$validation = $this->validate($request,
[
'departureDate' => 'required|date|after:now',
'returnDate' => 'required|date_format:"Y-m-d"|after:' . $after_date . '|before:' . $max_days
],
[
'departureDate.after' => 'Your departure date should be tomorrow or any date in the future',
'returnDate.after' => 'Your return date should be 3 or more days after the departure date',
'returnDate.before' => 'Your return date should be no more than 180 days from the departure date',
]
);
};
Я предполагаю, что у вас где-то определена дата вылета и, следовательно, вы используете $this->departureDate
, но если вместо этого он исходит из вашего запроса, вы должны изменить его, например, на $request->departureDate
.