Uuid

Валидирует, что значение является валидным Универсально-уникальным идентикиватором (UUID) в RFC 4122. По умолчанию, будет влаидироваться формат, в соответствии с пособием RFC, но это может быть ослаблено, чтобы принимать нестандартые UUID, которые принимают другие системы (вроде PostgreSQL). Версии UUID также могут быть ограничены с использованием белого списка.

Применяется к свойству или методу
Опции
Класс Uuid
Валидатор UuidValidator

Базовое применение

  • YAML
    1
    2
    3
    4
    5
    # src/AppBundle/Resources/config/validation.yml
    AppBundle\Entity\File:
        properties:
            identifier:
                - Uuid: ~
    
  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    // src/AppBundle/Entity/File.php
    namespace AppBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class File
    {
        /**
         * @Assert\Uuid
         */
         protected $identifier;
    }
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    <!-- src/AppBundle/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="AppBundle\Entity\File">
            <property name="identifier">
                <constraint name="Uuid" />
            </property>
        </class>
    </constraint-mapping>
    
  • PHP
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    // src/AppBundle/Entity/File.php
    namespace AppBundle\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class File
    {
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('identifier', new Assert\Uuid());
        }
    }
    

Опции

message

тип: string по умолчанию: Это не валидный UUID.

Это сообщение отображается, если строка не является валидным UUID.

strict

тип: boolean по умолчанию: true

Если эта опция установлена, как true, то ограничение проверит, отформатирован ли UUID в соответствии с правилами формата ввода RFC: 216fff40-98d9-11e3-a5e2-0800200c9a66. Установив её, как false, вы позволите варьировать форматы ввода, вроде:

  • 216f-ff40-98d9-11e3-a5e2-0800-200c-9a66
  • {216fff40-98d9-11e3-a5e2-0800200c9a66}
  • 216fff4098d911e3a5e20800200c9a66

versions

тип: int[] по умолчанию: [1,2,3,4,5]

Эта опция может быть использована только для разршения конкретных `версий UUID`_. Валидные версии: 1 - 5. Могут быть использованы также следующие PHP-константы:

  • Uuid::V1_MAC
  • Uuid::V2_DCE
  • Uuid::V3_MD5
  • Uuid::V4_RANDOM
  • Uuid::V5_SHA1

Все пять версий разрешены по умолчанию.

payload

type: mixed default: null

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 you.

For example, you may want to use several error levels to present failed constraints differently in the front-end depending on the severity of the error.

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.