Type

Valida che un valore sia di uno specifico tipo. Per esempio, se una variabile deve essere un array, si può usare questo vincolo con l’opzione tipo array, per validarla.

Si applica a proprietà o metodo
Opzioni
Classe Symfony\Component\Validator\Constraints\Type
Validatore Symfony\Component\Validator\Constraints\TypeValidator

Uso di base

  • YAML
    # src/BlogBundle/Resources/config/validation.yml
    Acme\BlogBundle\Entity\Author:
        properties:
            age:
                - Type:
                    type: integer
                    message: Il valore {{ value }} non è un {{ type }} valido.
    
  • Annotazioni
    // src/Acme/BlogBundle/Entity/Author.php
    namespace Acme\BlogBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Author
    {
        /**
         * @Assert\Type(type="integer", message="Il valore {{ value }} non è un {{ type }} valido.")
         */
        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">Il valore {{ value }} non è un {{ type }} valido.</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' => 'Il valore {{ value }} non è un {{ type }} valido.',
            )));
        }
    }
    

Opzioni

type

tipo: stringa [opzione predefinita]

Questa opzione obbligatoria è il nome pienamente qualificato della classe oppure uno dei tipi di dato di PHP, come stabilito dalle funzioni is_ di PHP.

Si possono anche usare le funzioni ctype_ della corrispondente estensione di PHP. Si consideri una lista di funzioni ctype:

Assicurarsi di impostare il locale adeguato prima dell’uso.

message

tipo: stringa predefinito: This value should be of type {{ type }}

Messaggio mostrato se i dati sottostanti non sono del tipo dato.

payload

tipo: mixed predefinito: null

Nuovo nella versione 2.6: L’opzione payload è stata introdotta in Symfony 2.6.

Si può usare questa opzione per allegare dati arbitrari, specifici del dominio, a un vincolo. Il payload configurato non è usato dal componente Validator, il suo trattamento è completamente a carico dello sviluppatore.

Per esempio, si potrebbero voler usare vari livelli di errore per presentare i vincoli falliti in modo diverso nel frontend, a seconda della graivtà dell’errore.

Tabella dei contenuti

Argomento precedente

False

Argomento successivo

Email

Questa pagina