All

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

Uso básico

Supongamos que tienes un arreglo de cadenas, y que deseas validar cada entrada de ese arreglo:

  • YAML
    # src/UserBundle/Resources/config/validation.yml
    Acme\UserBundle\Entity\User:
        properties:
            favoriteColors:
                - All:
                    - NotBlank:  ~
                    - Length:
                        min: 5
    
  • Annotations
    // 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();
    }
    
  • XML
    <!-- 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>
    
  • PHP
    // 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.

Opciones

constraints

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.

Bifúrcame en GitHub