Cuando se aplica a un arreglo (o a un objeto atravesable), esta restricción te permite aplicar un conjunto de restricciones a cada elemento del arreglo.
Aplica a | propiedad o método |
Opciones | |
Clase | Symfony\Component\Validator\Constraints\All |
Validador | Symfony\Component\Validator\Constraints\AllValidator |
Supongamos que tienes un arreglo de cadenas, y que deseas validar cada entrada de ese arreglo:
# src/UserBundle/Resources/config/validation.yml
Acme\UserBundle\Entity\User:
properties:
favoriteColors:
- All:
- NotBlank: ~
- Length:
min: 5
// src/Acme/UserBundle/Entity/User.php
namespace Acme\UserBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class User
{
/**
* @Assert\All({
* @Assert\NotBlank
* @Assert\Length(min = "5"),
* })
*/
protected $favoriteColors = array();
}
<!-- src/Acme/UserBundle/Resources/config/validation.xml -->
<class name="Acme\UserBundle\Entity\User">
<property name="favoriteColors">
<constraint name="All">
<option name="constraints">
<constraint name="NotBlank" />
<constraint name="Length">
<option name="min">5</option>
</constraint>
</option>
</constraint>
</property>
</class>
// src/Acme/UserBundle/Entity/User.php
namespace Acme\UserBundle\Entity;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints as Assert;
class User
{
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addPropertyConstraint('favoriteColors', new Assert\All(array(
'constraints' => array(
new Assert\NotBlank(),
new Assert\Length(array('limit' => 5)),
),
)));
}
}
Ahora, cada entrada en el arreglo favoriteColors será validada para que no esté en blanco y que por lo menos sea de 5 caracteres.
tipo: array [opción predeterminada]
Esta opción requerida es el arreglo de restricciones de validación que deseas aplicar a cada elemento del arreglo subyacente.