Luhn

Это ограничение используется, чтобы гарантировать, что номер кредитной карты проходит `алогоритм Луна`_. Оно полезно в качестве первого шага валидации кредитной карты: до коммуникации с шлюзом оплаты.

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

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

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

  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    // src/AppBundle/Entity/Transaction.php
    namespace AppBundle\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Transaction
    {
        /**
         * @Assert\Luhn(message = "Пожалуйста, проверьте номер вашей кредитной карты.")
         */
        protected $cardNumber;
    }
    
  • YAML
    1
    2
    3
    4
    5
    6
    # src/AppBundle/Resources/config/validation.yml
    AppBundle\Entity\Transaction:
        properties:
            cardNumber:
                - Luhn:
                    message: Пожалуйста, проверьте номер вашей кредитной карты.
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    <!-- 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\Transaction">
            <property name="cardNumber">
                <constraint name="Luhn">
                    <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
    // src/AppBundle/Entity/Transaction.php
    namespace AppBundle\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Transaction
    {
        protected $cardNumber;
    
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('cardNumber', new Assert\Luhn(array(
                'message' => 'Пожалуйста, проверьте номер вашей кредитной карты',
            )));
        }
    }
    

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

message

тип: string по умолчанию: Невалидный номер карточки.

Сообщение по умолчанию, отображаемое, когда значение не проходит проверку Луна.

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.