IsTrue

Валидирует, что значение является true. А именно проверяет, чтобы значениче точно было true, число точно было 1, или строка точно была "1".

Также смотрите IsFalse.

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

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

Это ограничение может быть применено к свойствам (например, к свойству termsAccepted в модели регистрации) или к геттер-методу. Наиболее мощным оно является во втором случае, где вы можете удостовериться, чтоб метод возвращает настоящее значение. Например, представьте, что у вас есть следующий метод:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// src/Entity/Author.php
namespace App\Entity;

class Author
{
    protected $token;

    public function isTokenValid()
    {
        return $this->token == $this->generateToken();
    }
}

Тогда вы можете ограничить этот метод с IsTrue.

  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    // src/Entity/Author.php
    namespace App\Entity;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Author
    {
        protected $token;
    
        /**
         * @Assert\IsTrue(message="Токен не валиден")
         */
        public function isTokenValid()
        {
            return $this->token == $this->generateToken();
        }
    }
    
  • YAML
    1
    2
    3
    4
    5
    6
    # config/validator/validation.yaml
    App\Entity\Author:
        getters:
            tokenValid:
                - 'IsTrue':
                    message: Токен не валиден.
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    <!-- 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="App\Entity\Author">
            <getter property="tokenValid">
                <constraint name="IsTrue">
                    <option name="message">Токен не валиден.</option>
                </constraint>
            </getter>
        </class>
    </constraint-mapping>
    
  • PHP
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // src/Entity/Author.php
    namespace App\Entity;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints\IsTrue;
    
    class Author
    {
        protected $token;
    
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addGetterConstraint('tokenValid', new IsTrue(array(
                'message' => 'Токен не валиден.',
            )));
        }
    
        public function isTokenValid()
        {
            return $this->token == $this->generateToken();
        }
    }
    

Если isTokenValid() вернёт "false", то валидация будет неудачной.

Опции

message

тип: string по умолчанию: Это значение должно быть "true".

Это сообщение отображается, если основоположные данные не "true".

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.