发布于 2015-08-27 16:41:54 | 221 次阅读 | 评论: 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}216fff4098d911e3a5e20800200c9a66type: 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_MACUuid::V2_DCEUuid::V3_MD5Uuid::V4_RANDOMUuid::V5_SHA1All 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.