Type

Validates that a value is of a specific data type. For example, if a variable should be an array, you can use this constraint with the array type option to validate this.

Applies to property or method
Options
Class Type
Validator TypeValidator

Basic Usage

  • YAML
    # src/Acme/BlogBundle/Resources/config/validation.yml
    Acme\BlogBundle\Entity\Author:
        properties:
            age:
                - Type:
                    type: integer
                    message: The value {{ value }} is not a valid {{ type }}.
    
  • Annotations
    // src/Acme/BlogBundle/Entity/Author.php
    namespace Acme\BlogBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Author
    {
        /**
         * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.")
         */
        protected $age;
    }
    
  • XML
    <!-- src/Acme/BlogBundle/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="Acme\BlogBundle\Entity\Author">
            <property name="age">
                <constraint name="Type">
                    <option name="type">integer</option>
                    <option name="message">The value {{ value }} is not a valid {{ type }}.</option>
                </constraint>
            </property>
        </class>
    </constraint-mapping>
    
  • PHP
    // src/Acme/BlogBundle/Entity/Author.php
    namespace Acme\BlogBundle\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Author
    {
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('age', new Assert\Type(array(
                'type'    => 'integer',
                'message' => 'The value {{ value }} is not a valid {{ type }}.',
            )));
        }
    }
    

Options

type

type: string [default option]

This required option is the fully qualified class name or one of the PHP datatypes as determined by PHP’s is_ functions.

Also, you can use ctype_ functions from corresponding built-in PHP extension. Consider a list of ctype functions:

Make sure that the proper locale is set before using one of these.

message

type: string default: This value should be of type {{ type }}.

The message if the underlying data is not of the given type.