Nuevo en Symfony 3.4: Soporte para grupos en el validador "Valid"
El validador Valid se emplea para validar los objetos que están embebidos
como propiedades de otros objetos. De esta manera puedes validar fácilmente un
objeto y todos los sub-objetos relacionados. Como en el siguiente ejemplo, que
valida el objeto Address
incluido dentro del objeto Author
:
// src/AppBundle/Entity/Address.php namespace AppBundle\Entity; use Symfony\Component\Validator\Constraints as Assert; class Address { /** @Assert\NotBlank() */ protected $street; /** @Assert\Length(max = 5) */ protected $zipCode; } // src/AppBundle/Entity/Author.php namespace AppBundle\Entity; use Symfony\Component\Validator\Constraints as Assert; class Author { /** @Assert\NotBlank */ protected $firstName; /** @Assert\NotBlank */ protected $lastName; /** @Assert\Valid */ protected $address; }
El único inconveniente de este validador es que no soporta los grupos de validación. En Symfony 3.4 hemos mejorado este validador para que sí soporte los grupos:
// src/AppBundle/Entity/Address.php // ... class Address { /** @Assert\NotBlank(groups={"basic"}) */ protected $street; /** @Assert\Length(max = 5) */ protected $zipCode; } // src/AppBundle/Entity/Author.php // ... class Author { /** @Assert\NotBlank */ protected $firstName; /** @Assert\NotBlank */ protected $lastName; /** @Assert\Valid(groups={"basic"}) */ protected $address; }
En este ejemplo, el validador Valid
solamente comprueba las propiedades que
pertenezcan al grupo basic
del objeto Address
, así que solo validará la
propiedad street
y no la propiedad zipCode
.
Esta mejora ha sido contribuida por Christian Flothmann en el pull request #21111.
Fuente: New in Symfony 3.4: Groups support for the Valid constraint
Comentarios
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.