Length
Edit this pageWarning: You are browsing the documentation for Symfony 2.2, which is no longer maintained.
Read the updated version of this page for Symfony 6.3 (the current stable version).
Length
Validates that a given string length is between some minimum and maximum value.
2.1
The Length constraint was added in Symfony 2.1.
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:
1 2 3 4 5 6 7 8 9
# 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 length"
maxMessage: "Your first name cannot be longer than {{ limit }} characters length"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// 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 length",
* maxMessage = "Your first name cannot be longer than {{ limit }} characters length"
* )
*/
protected $firstName;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<!-- 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 length</option>
<option name="maxMessage">Your first name cannot be longer than {{ limit }} characters length</option>
</constraint>
</property>
</class>
</constraint-mapping>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// 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 {{ limit }} characters length',
)));
}
}
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.