Email

Валидирует, что значение является валидным адресом электронной почты. Основоположное значение преобразовывается в строку перед валидацией.

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

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

  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    // src/Entity/Author.php
    namespace App\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Author
    {
        /**
         * @Assert\Email(
         *     message = "The email '{{ value }}' is not a valid email.",
         *     checkMX = true
         * )
         */
         protected $email;
    }
    
  • YAML
    1
    2
    3
    4
    5
    6
    7
    # config/validator/validation.yaml
    App\Entity\Author:
        properties:
            email:
                - Email:
                    message: The email "{{ value }}" is not a valid email.
                    checkMX: true
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    <!-- config/validator/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="App\Entity\Author">
            <property name="email">
                <constraint name="Email">
                    <option name="message">The email "{{ value }}" is not a valid email.</option>
                    <option name="checkMX">true</option>
                </constraint>
            </property>
        </class>
    </constraint-mapping>
    
  • PHP
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    // src/Entity/Author.php
    namespace App\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Author
    {
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('email', new Assert\Email(array(
                'message' => 'The email "{{ value }}" is not a valid email.',
                'checkMX' => true,
            )));
        }
    }
    

Опции

mode

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

Эта опция необязательна и определяет схему, по которой валидируется адрес электронной почты. Валидными значениями являются:

  • loose
  • strict
  • html5

loose

Простое регуляное выражение. Позволяет все значения с символом "@" и "." во второй части хоста адресов электронной почты.

strict

Использует библиотеку egulias/email-validator, чтобы выполнять валидацию, совместиую с RFC. Вам понадобится установить эту библиотеку, чтобы использовать этот режим.

html5

Совпадает со схемой, используемой для элемент ввода электронной почты HTML5.

message

тип: string по умолчанию: Это значение не является валидным электронным адресом.

Это сообщение отображается, если осоновоположные данные не являются валидным адресом электронной почты.

checkMX

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

Если "true", то PHP-функция checkdnsrr будет использована для проверки валидности MX записи хоста данного электронного адреса.

checkHost

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

Если "true", то PHP-функция checkdnsrr будет использована для проверки валидности MX или А или ААА записи хоста данного электронного адреса.

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.