Скажем, я хочу, чтобы проверить переменную электронной почты, которое передается в действие контроллера:Как завершить проверку составного поля, когда ограничение типа возвращает нарушение?
use Symfony\Component\Validator\Constraints\Collection;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
$constraints = new Collection([
'fields' => [
'email' => [
new Type([
'type' => 'string',
'message' => static::ERROR_EMAIL_INVALID,
]),
new NotBlank([
'message' => static::ERROR_EMAIL_REQUIRED,
]),
new Email([
'message' => static::ERROR_EMAIL_INVALID,
]),
new Length([
'max' => 128,
'maxMessage' => static::ERROR_EMAIL_TOO_LONG,
]),
],
],
]);
Если пользователь отправляет email[]=1
, то UnexpectedTypeException
будет брошен, и я должен обрабатывать вручную, вернуть переведенную сообщение, впрыснуть переводчик и т.д.
есть ли способ сказать валидатор Symfony для проверки Type
первых и игнорировать другие ограничения, если Type
не удается (только возвращает ошибку Type
)?
Немного слишком сложны для моего случая использования, но, безусловно, выглядит как правильное решение от Symfony (при условии, что нет более простого). – gskema