Для тех, кто может столкнуться с той же проблемой, я собираюсь ответить на свой вопрос.
К счастью, за помощь @ Sohel0415 в комментариях я смог решить проблему.
как уже упоминалось в этом вопросе: Изменить ввод перед проверкой на Laravel 5.1 . Вызов sanitize()
в rule()
не изменит входные данные до проверки. Он дезинфицирует и изменяет входные данные, но эта модификация используется только после проверки. Это потому, что входные данные уже загружены для проверки.
Класс FormRequest фактически использует метод validationData()
для доступа к данным, которые будут проверяться, и это происходит до вызова rule()
.
protected function validationData() //the method inside Illuminate\Foundation\Http\FormRequest;
{
return $this->all();
}
Поэтому, если мы переопределим этот метод только в нашем классе запросов, мы сможем решить эту проблему .:
protected function validationData()
{
$this->sanitize();
return parent::validationData(); // TODO: Change the autogenerated stub
}