发布于 2015-08-27 16:41:54 | 201 次阅读 | 评论: 0 | 来源: 网络整理
Validates that a value is a valid Universally unique identifier (UUID) per RFC 4122. By default, this will validate the format according to the RFC’s guidelines, but this can be relaxed to accept non-standard UUIDs that other systems (like PostgreSQL) accept. UUID versions can also be restricted using a whitelist.
Applies to | property or method |
Options | |
Class | Uuid |
Validator | UuidValidator |
# src/UploadsBundle/Resources/config/validation.yml
AcmeUploadsBundleEntityFile:
properties:
identifier:
- Uuid: ~
// src/Acme/UploadsBundle/Entity/File.php
namespace AcmeUploadsBundleEntity;
use SymfonyComponentValidatorConstraints as Assert;
class File
{
/**
* @AssertUuid
*/
protected $identifier;
}
<!-- src/Acme/UploadsBundle/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="AcmeUploadsBundleEntityFile">
<property name="identifier">
<constraint name="Uuid" />
</property>
</class>
</constraint-mapping>
// src/Acme/UploadsBundle/Entity/File.php
namespace AcmeUploadsBundleEntity;
use SymfonyComponentValidatorMappingClassMetadata;
use SymfonyComponentValidatorConstraints as Assert;
class File
{
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addPropertyConstraint('identifier', new AssertUuid());
}
}
type: string
default: This is not a valid UUID.
This message is shown if the string is not a valid UUID.
type: boolean
default: true
If this option is set to true
the constraint will check if the UUID is formatted per the
RFC’s input format rules: 216fff40-98d9-11e3-a5e2-0800200c9a66
. Setting this to false
will allow alternate input formats like:
216f-ff40-98d9-11e3-a5e2-0800-200c-9a66
{216fff40-98d9-11e3-a5e2-0800200c9a66}
216fff4098d911e3a5e20800200c9a66
type: int[]
default: [1,2,3,4,5]
This option can be used to only allow specific UUID versions. Valid versions are 1 - 5. The following PHP constants can also be used:
Uuid::V1_MAC
Uuid::V2_DCE
Uuid::V3_MD5
Uuid::V4_RANDOM
Uuid::V5_SHA1
All five versions are allowed by default.
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.