Я создал пользовательское правило с помощью php artisan make: rule, установил его в контроллере, но оно не работает. В чем может быть проблема?
class CheckDeliveryDate implements Rule
{
public $client_id;
private $is_after_midday;
private $error_messge;
public function __construct(int $client_id)
{
$this->client_id = $client_id;
$this->is_after_midday = Carbon::now()->greaterThan(Carbon::now()->midDay());
$this->error_messge = 'Error';
}
public function passes($attribute, $value)
{
$delivery_date = Carbon::parse($value);
if ($delivery_date->isToday()) {
$this->error_messge = 'Error';
return false;
}
if ($delivery_date->endOfDay()->isPast()) {
$this->error_messge = 'Error';
return false;
}
return true;
}
public function message()
{
return $this->error_messge;
}
}
В контроллере я установил правила метода:
public function rules($client_id)
{
return [
'orders.*.positions.*.delivery_time' => [
'required',
'date',
new CheckDeliveryDate($client_id)
],
];
}
и когда я сохраняю свой заказ, validator-> fails () возвращает мне «false».
$validator = Validator::make(
$request->all(),
$this->rules($client_id)
);
Я пытался установить dd или dump в правиле, не работает. Где моя ошибка?