发布于 2015-08-27 16:41:34 | 101 次阅读 | 评论: 0 | 来源: 网络整理
Validates that a given number is between some minimum and maximum number.
Applies to | property or method |
Options | |
Class | Range |
Validator | RangeValidator |
To verify that the “height” field of a class is between “120” and “180”, you might add the following:
# src/Acme/EventBundle/Resources/config/validation.yml
AcmeEventBundleEntityParticipant:
properties:
height:
- Range:
min: 120
max: 180
minMessage: You must be at least {{ limit }}cm tall to enter
maxMessage: You cannot be taller than {{ limit }}cm to enter
// src/Acme/EventBundle/Entity/Participant.php
namespace AcmeEventBundleEntity;
use SymfonyComponentValidatorConstraints as Assert;
class Participant
{
/**
* @AssertRange(
* min = 120,
* max = 180,
* minMessage = "You must be at least {{ limit }}cm tall to enter",
* maxMessage = "You cannot be taller than {{ limit }}cm to enter"
* )
*/
protected $height;
}
<!-- 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="AcmeEventBundleEntityParticipant">
<property name="height">
<constraint name="Range">
<option name="min">120</option>
<option name="max">180</option>
<option name="minMessage">You must be at least {{ limit }}cm tall to enter</option>
<option name="maxMessage">You cannot be taller than {{ limit }}cm to enter</option>
</constraint>
</property>
</class>
</constraint-mapping>
// src/Acme/EventBundle/Entity/Participant.php
namespace AcmeEventBundleEntity;
use SymfonyComponentValidatorMappingClassMetadata;
use SymfonyComponentValidatorConstraints as Assert;
class Participant
{
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addPropertyConstraint('height', new AssertRange(array(
'min' => 120,
'max' => 180,
'minMessage' => 'You must be at least {{ limit }}cm tall to enter',
'maxMessage' => 'You cannot be taller than {{ limit }}cm to enter',
)));
}
}
type: integer
This required option is the “min” value. Validation will fail if the given value is less than this min value.
type: integer
This required option is the “max” value. Validation will fail if the given value is greater than this max value.
type: string
default: This value should be {{ limit }} or more.
The message that will be shown if the underlying value is less than the min option.
type: string
default: This value should be {{ limit }} or less.
The message that will be shown if the underlying value is more than the max option.
type: string
default: This value should be a valid number.
The message that will be shown if the underlying value is not a number (per the is_numeric PHP function).
type: mixed
default: null
2.6 新版功能: The payload
option was introduced in Symfony 2.6.
This option can be used to attach arbitrary domain-specific data to a constraint. The configured payload is not used by the Validator component, but its processing is completely up to.
For example, you may want to used several error levels to present failed constraint differently in the front-end depending on the severity of the error.