Length¶
Validates that a given string length is between some minimum and maximum value.
Applies to | property or method |
Options | |
Class | Length |
Validator | LengthValidator |
Basic Usage¶
To verify that the firstName field length of a class is between “2” and “50”, you might add the following:
- YAML
# src/Acme/EventBundle/Resources/config/validation.yml Acme\EventBundle\Entity\Participant: properties: firstName: - Length: min: 2 max: 50 minMessage: "Your first name must be at least {{ limit }} characters long" maxMessage: "Your first name cannot be longer than {{ limit }} characters long"
- Annotations
// 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 = "Your first name must be at least {{ limit }} characters long", * maxMessage = "Your first name cannot be longer than {{ limit }} characters long" * ) */ protected $firstName; }
- XML
<!-- src/Acme/EventBundle/Resources/config/validation.xml --> <?xml version="1.0" encoding="UTF-8" ?> <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> <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">Your first name must be at least {{ limit }} characters long</option> <option name="maxMessage">Your first name cannot be longer than {{ limit }} characters long</option> </constraint> </property> </class> </constraint-mapping>
- 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('firstName', new Assert\Length(array( 'min' => 2, 'max' => 50, 'minMessage' => 'Your first name must be at least {{ limit }} characters long', 'maxMessage' => 'Your first name cannot be longer than {{ limit }} characters long', ))); } }
Options¶
min¶
type: integer
This required option is the “min” length value. Validation will fail if the given value’s length is less than this min value.
max¶
type: integer
This required option is the “max” length value. Validation will fail if the given value’s length is greater than this max value.
charset¶
type: string default: UTF-8
The charset to be used when computing value’s length. The grapheme_strlen PHP function is used if available. If not, the mb_strlen PHP function is used if available. If neither are available, the strlen PHP function is used.
minMessage¶
type: string default: This value is too short. It should have {{ limit }} characters or more.
The message that will be shown if the underlying value’s length is less than the min option.
maxMessage¶
type: string default: This value is too long. It should have {{ limit }} characters or less.
The message that will be shown if the underlying value’s length is more than the max option.
exactMessage¶
type: string default: This value should have exactly {{ limit }} characters.
The message that will be shown if min and max values are equal and the underlying value’s length is not exactly this value.