Valida que el elemento de una determinada colección (es decir, un arreglo o un objeto que implemente a Countable) esté entre algún valor mínimo y máximo.
Nuevo en la versión 2.1: La restricción Count se agregó en Symfony 2.1.
Aplica a | propiedad o método |
Opciones | |
Clase | Symfony\Component\Validator\Constraints\Count |
Validador | Symfony\Component\Validator\Constraints\CountValidator |
Para verificar que el arreglo de campos emails contiene entre 1 y 5 elementos puedes agregar lo siguiente:
# src/Acme/EventBundle/Resources/config/validation.yml
Acme\EventBundle\Entity\Participant:
properties:
emails:
- Count:
min: 1
max: 5
minMessage: "Debes especificar cuando menos una dirección de correo electrónico"
maxMessage: "No puedes especificar más de {{ limit }} direcciones de correo electrónico"
// src/Acme/EventBundle/Entity/Participant.php
namespace Acme\EventBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Participant
{
/**
* @Assert\Count(
* min = "1",
* max = "5",
* minMessage = "Debes especificar al menos una dirección de correo electrónico",
* maxMessage = "No puedes especificar más de {{ limit }} direcciones de correo electrónico"
* )
*/
protected $emails = array();
}
<!-- src/Acme/EventBundle/Resources/config/validation.xml -->
<class name="Acme\EventBundle\Entity\Participant">
<property name="emails">
<constraint name="Count">
<option name="min">1</option>
<option name="max">5</option>
<option name="minMessage">Debes especificar cuando menos una dirección de correo electrónico</option>
<option name="maxMessage">No puedes especificar más de {{ limit }} direcciones de correo electrónico</option>
</constraint>
</property>
</class>
// 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 $data)
{
$metadata->addPropertyConstraint('emails', new Assert\Count(array(
'min' => 1,
'max' => 5,
'minMessage' => 'You must specify at least one email',
'maxMessage' => 'You cannot specify more than {{ limit }} emails',
)));
}
}
tipo: integer [default option]
Esta opción requerida es el valor de cantidad mínima. La validación fallará si la cantidad de elementos de la colección suministrados menor que este valor mínimo.
tipo: integer [default option]
Esta opción requerida es la cantidad del valor máximo. La validación fallará si la cantidad de elementos dados de la colección es más grande que este valor máximo.
tipo: string predefinido: This collection should contain {{ limit }} elements or more. (Esta colección debe contener {{ limit }} elementos o más).
El mensaje que será mostrado si la cantidad de elementos de la colección subyacente es menor que la opción min.
tipo: string predefinido: This collection should contain {{ limit }} elements or less. (Esta colección debe contener {{ limit }} elementos o menos.).
El mensaje que será mostrado si la cantidad de elementos de la colección subyacente es mayor que la opción max.
tipo: string predefinido: This collection should contain exactly {{ limit }} elements. (Esta colección debe contener exactamente {{ limit }} elementos.).
El mensaje que será mostrado si los valores min y max son iguales y la cantidad de elementos de la colección subyacente no es exactamente este valor.