Есть кастомное правило для проверки даты. Все по документации Laravel, но при этом не срабатывает и всегда возвращает, что ошибок нет. dump и dd из метода passes не реагирует никак. Есть какие нибудь предположения?
class CheckDeliveryDate implements Rule
{
public function passes($attribute, $value)
{
$delivery_date = Carbon::parse($value);
if ($delivery_date->isToday()) {
$this->error_messge = "Дата доставки не может быть сегодняшней";
return false;
}
if ($delivery_date->endOfDay()->isPast()) {
$this->error_messge = "Дата доставки не может быть прошедшей";
return false;
}
return true;
}
public function message() {
return $this->error_messge;
}
}
Подключаю в контроллере:
$validator = Validator::make(
$request->all(),
$this->rules($client_id)
);
Метод с массивом правил:
public function rules($client_id) {
return [
'orders.*.positions.*.col' => 'required|numeric',
'orders.*.positions.*.width' => 'required|numeric',
'orders.*.positions.*.height' => 'required|numeric',
'orders.*.positions.*.area' => 'nullable|numeric',
'orders.*.positions.*.delivery_time' => ['required', 'date', new CheckDeliveryDate],
];
}
Все остальные валидации работают корректно, но собственное отказывается работать
Нашел в чем проблема. Дело в том, что изначально формат данных, которые приходят отличался от первоначальной точки, соответственно структура JSON не соответствовала валидации.
Продвижение своими сайтами как стратегия роста и независимости