Есть кастомное правило для проверки даты. Все по документации Laravel, но при этом не срабатывает и всегда возвращает, что ошибок нет. dump и dd из метода passes не реагирует никак. Есть какие нибудь предположения?
class CheckDeliveryDate implements Rule
{
public $client_id;
private $error_messge;
public function __construct(int $client_id)
{
$this->client_id = $client_id;
$this->error_messge = "Некорректная дата доставки";
}
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.*.delivery_time' => ['required', 'date', new CheckDeliveryDate($client_id)],
];
}