Isbn

Это ограничение валидирует, что `Международный стандарнтный книжный номер (ISBN)`_ является либо валидным ISBN-10, либо валидным ISBN-13.

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

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

Чтобы использовать валидатор Isbn, просто примените его к свойству или методу в объекте, который будет содержать ISBN.

  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    // src/AppBundle/Entity/Book.php
    namespace AppBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Book
    {
        /**
         * @Assert\Isbn(
         *     type = "isbn10",
         *     message = "Это значение не валидно."
         * )
         */
        protected $isbn;
    }
    
  • YAML
    1
    2
    3
    4
    5
    6
    7
    # src/AppBundle/Resources/config/validation.yml
    AppBundle\Entity\Book:
        properties:
            isbn:
                - Isbn:
                    type: isbn10
                    message: Это значение не валидно.
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    <!-- 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\Book">
            <property name="isbn">
                <constraint name="Isbn">
                    <option name="type">isbn10</option>
                    <option name="message">Это значение не валидно.</option>
                </constraint>
            </property>
        </class>
    </constraint-mapping>
    
  • PHP
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // src/AppBundle/Entity/Book.php
    namespace AppBundle\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Book
    {
        protected $isbn;
    
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('isbn', new Assert\Isbn(array(
                'type'    => 'isbn10',
                'message' => 'Это значение не валидно.'
            )));
        }
    }
    

Доступные опции

type

тип: string по умолчанию: null

Тип ISBN, с которым нужно валидировать. Валидные значения - isbn10, isbn13 и null, чтобы принять любой вид ISBN.

message

тип: string по умолчанию: null

Это сообщение будет отображено, если значение не валидно. Если оно не null, то это сообщение имеет приоритет перед всеми другими сообщениями.

isbn10Message

тип: string по умолчанию: Это значение не является валидным ISBN-10.

Это сообщение будет отображено, если опция type - isbn10, а заданное значение не проходит проверку ISBN-10.

isbn13Message

тип: string по умолчанию: Это значение не является валидным ISBN-13.

Это сообщение будет отображено, если опция type - isbn13, а заданное значение не проходит проверку ISBN-13.

bothIsbnMessage

тип: string по умолчанию: Это значение не является валидным ISBN-10, либо валидным ISBN-13.

Это сообщение будет отображено, если опция type - null, а заданное значение не проходит ни одну проверку ISBN.

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.