ExpressionLanguageSyntax

Дата обновления перевода 2023-01-13

ExpressionLanguageSyntax

6.1

Это ограничение устарело, начиная с Symfony 6.1. Вместо этого, используйте ограничение ExpressionSyntax.

Это ограничение проверяет, чтобы значение было валидным, как выражение ExpressionLanguage.

??????????? ? ???????? ??? ??????
????? ExpressionLanguageSyntax
????????? ExpressionLanguageSyntaxValidator

Базовое использование

Следующие ограничения гарантируют, что:

  • свойство promotion хранит значение, которое валидно, как выражение ExpressionLanguage;
  • свойство shippingOptions также гарантирует, чтобы выражение использует только определенные переменные.
  • Attributes
  • YAML
  • XML
  • PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// src/Entity/Order.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Order
{
    #[Assert\ExpressionLanguageSyntax]
    protected $promotion;

    #[Assert\ExpressionLanguageSyntax(
        allowedVariables: ['user', 'shipping_centers'],
    )]
    protected $shippingOptions;
}

Опции

allowedVariables

тип: array или null по умолчанию: null

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

groups

type: array | string

It defines the validation group or groups of this constraint. Read more about validation groups.

message

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

Это сообщение отображается при неудачной валидации.

payload

тип: mixed по умолчанию: null

Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.

Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.