Valida que la longitud de una cadena dada está entre algún valor mínimo y máximo.
Nuevo en la versión 2.1: La restricción Length se añadió en Symfony 2.1.
Aplica a | propiedad o método |
Opciones | |
Clase | Symfony\Component\Validator\Constraints\Length |
Validador | Symfony\Component\Validator\Constraints\LengthValidator |
Para verificar que la longitud del campo firstName de una clase está entre 2 y 50, puedes agregar lo siguiente:
# src/Acme/EventBundle/Resources/config/validation.yml
Acme\EventBundle\Entity\Participant:
properties:
firstName:
- Length:
min: 2
max: 50
minMessage: "Tu primer nombre por lo menos debe tener {{ limit }} caracteres de largo"
maxMessage: "Tu primer nombre no puede tener más de {{ limit }} caracteres de largo"
// src/Acme/EventBundle/Entity/Participant.php
namespace Acme\EventBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Participant
{
/**
* @Assert\Length(
* min = "2",
* max = "50",
* minMessage = "Tu primer nombre por lo menos debe tener {{ limit }} caracteres de largo",
* maxMessage = "Tu primer nombre no puede tener más de {{ limit }} caracteres de largo"
* )
*/
protected $firstName;
}
<!-- src/Acme/EventBundle/Resources/config/validation.xml -->
<class name="Acme\EventBundle\Entity\Participant">
<property name="firstName">
<constraint name="Length">
<option name="min">2</option>
<option name="max">50</option>
<option name="minMessage">Tu primer nombre por lo menos debe tener {{ limit }} caracteres de largo</option>
<option name="maxMessage">Tu primer nombre no puede tener más de {{ limit }} caracteres de largo</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 $metadata)
{
$metadata->addPropertyConstraint('firstName', new Assert\Length(array(
'min' => 2,
'max' => 50,
'minMessage' => 'Your first name must be at least {{ limit }} characters length',
'maxMessage' => 'Your first name cannot be longer than than {{ limit }} characters length',
)));
}
}
tipo: integer [default option]
Esta opción requerida es el valor de la longitud mínima. La validación fallará si la longitud del valor suministrado es menor que este valor mínimo.
tipo: integer [default option]
Esta opción requerida es el valor de la longitud máxima. La validación fallará si la longitud del valor suministrado es mayor que este valor máximo.
tipo: string predefinido: UTF-8
El juego de caracteres a usar al calcular la longitud del valor. Se utiliza la función grapheme_strlen de PHP si está disponible. Si no, se utiliza la función mb_strlen de PHP si está disponible. Si ninguna está disponible, se utiliza la función strlen de PHP.
tipo: string predefinido: This value is too short. It should have {{ limit }} characters or more (Este debe tener {{ limit }} caracteres o más)
El mensaje que se mostrará si la longitud del valor subyacente es menor que la opción min.
tipo: string predefinido: This value is too long. It should have {{ limit }} characters or less (Este debe tener {{ limit }} caracteres o menos)
El mensaje que se mostrará si la longitud del valor subyacente es mayor que la opción max.
tipo: string predefinido: This value should have exactly {{ limit }} characters. (Este valor debe tener exactamente {{ limit }} caracteres.)
El mensaje que se mostrará si los valores min y max son iguales y la longitud del valor subyacente no es de exactamente este valor.