Range

Valida que un número dado está entre algún número mínimo y máximo.

Nuevo en la versión 2.1: La restricción Range se añadió en Symfony 2.1.

Aplica a propiedad o método
Opciones
Clase Symfony\Component\Validator\Constraints\Range
Validador Symfony\Component\Validator\Constraints\RangeValidator

Uso básico

Para verificar que el campo estatura de una clase está entre 120 y 180, puedes agregar lo siguiente:

  • YAML
    # src/Acme/EventBundle/Resources/config/validation.yml
    Acme\EventBundle\Entity\Participant:
        properties:
            estatura:
                - Range:
                    min: 120
                    max: 180
                    minMessage: Para entrar por lo menos debes tener una estatura de 120 cm
                    maxMessage: No puedes ser más alto de 180 cm para ingresar
    
  • Annotations
    // src/Acme/EventBundle/Entity/Participant.php
    namespace Acme\EventBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Participant
    {
        /**
         * @Assert\Range(
         *      min = "120",
         *      max = "180",
         *      minMessage = "Para entrar por lo menos debes tener una estatura de 120 cm",
         *      maxMessage = "No puedes ser más alto de 180 cm para ingresar"
         * )
         */
         protected $estatura;
    }
    
  • XML
    <!-- src/Acme/EventBundle/Resources/config/validation.xml -->
    <class name="Acme\EventBundle\Entity\Participant">
        <property name="height">
            <constraint name="Range">
                <option name="min">120</option>
                <option name="max">180</option>
                <option name="minMessage">You must be at least 120cm tall to enter</option>
                <option name="maxMessage">You cannot be taller than 180cm to enter</option>
            </constraint>
        </property>
    </class>
    
  • PHP
    // src/Acme/EventBundle/Entity/Participant.php
    namespace Acme\EventBundle\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Participant
    {
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('height', new Assert\Range(array(
                'min'        => 120,
                'max'        => 180,
                'minMessage' => 'You must be at least 120cm tall to enter',
                'maxMessage' => 'You cannot be taller than 180cm to enter',
            )));
        }
    }
    

Opciones

min

tipo: integer [default option]

Esta opción requerida es el valor mínimo. La validación fallará si el valor es menor que este valor mínimo.

max

tipo: integer [default option]

Esta opción requerida es el valor máximo. La validación fallará si el valor es mayor que este valor máximo.

minMessage

tipo: string predefinido: This value should be {{ limit }} or more (Este valor debe ser {{ limit }} o más)

El mensaje que se mostrará si el valor subyacente es menor que la opción min.

maxMessage

tipo: string predefinido: This value should be {{ limit }} or less. (Este valor debe ser {{ limit }} o menor)

El mensaje que se mostrará si el valor subyacente es mayor que la opción max.

invalidMessage

tipo: string predefinido: This value should be a valid number (Este valor debe ser un número válido)

El mensaje que se mostrará si el valor subyacente no es un número (por medio de la función is_numeric de PHP).

Bifúrcame en GitHub