WARNING: You are browsing the documentation for Symfony 2.3 which is not maintained anymore. Consider upgrading your projects to Symfony 4.2.

Isbn

2.3 version

Isbn

New in version 2.3: The Isbn constraint was introduced in Symfony 2.3.

This constraint validates that an International Standard Book Number (ISBN) is either a valid ISBN-10, a valid ISBN-13 or both.

Applies to property or method
Options
Class Isbn
Validator IsbnValidator

Basic Usage

To use the Isbn validator, simply apply it to a property or method on an object that will contain a ISBN number.

  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    // src/AppBundle/Entity/Book.php
    namespace AppBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Book
    {
        /**
         * @Assert\Isbn(
         *     isbn10 = true,
         *     isbn13 = true,
         *     bothIsbnMessage = "This value is neither a valid ISBN-10 nor a valid ISBN-13."
         * )
         */
        protected $isbn;
    }
    
  • YAML
    1
    2
    3
    4
    5
    6
    7
    8
    # src/AppBundle/Resources/config/validation.yml
    AppBundle\Entity\Book:
        properties:
            isbn:
                - Isbn:
                    isbn10: true
                    isbn13: true
                    bothIsbnMessage: This value is neither a valid ISBN-10 nor a valid ISBN-13.
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <!-- 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="isbn10">true</option>
                    <option name="isbn13">true</option>
                    <option name="bothIsbnMessage">
                        This value is neither a valid ISBN-10 nor a valid ISBN-13.
                    </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
    19
    // 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(
                'isbn10'          => true,
                'isbn13'          => true,
                'bothIsbnMessage' => 'This value is neither a valid ISBN-10 nor a valid ISBN-13.'
            )));
        }
    }
    

Available Options

isbn10

type: boolean default: false

If this required option is set to true the constraint will check if the code is a valid ISBN-10 code.

isbn13

type: boolean default: false

If this required option is set to true the constraint will check if the code is a valid ISBN-13 code.

isbn10Message

type: string default: This value is not a valid ISBN-10.

The message that will be shown if the isbn10 option is true and the given value does not pass the ISBN-10 check.

isbn13Message

type: string default: This value is not a valid ISBN-13.

The message that will be shown if the isbn13 option is true and the given value does not pass the ISBN-13 check.

bothIsbnMessage

type: string default: This value is neither a valid ISBN-10 nor a valid ISBN-13.

The message that will be shown if both the isbn10 and isbn13 options are true and the given value does not pass the ISBN-13 nor the ISBN-13 check.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.