AtLeastOneOf

Дата оновлення перекладу 2022-12-16

AtLeastOneOf

Це обмеження перевіряє, щоб значення задовольняло хоча б одне із заданих обмежень. Валідація зупиняється як тільки одне з обмежень задоволено.

?????????????? ?? ??????????? ??? ??????
???? AtLeastOneOf
????????? AtLeastOneOfValidator

Базове застосування

Наступні обмеження гарантують, що:

  • password у Student або містить #, або має щонайменше 10 символів;
  • grades у Student є масивом, який містить щонайменше 3 елементи або, що кожний елемент більший за або дорівнює 5.
  • Attributes
  • YAML
  • XML
  • 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/Student.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

// ВАЖЛИВО: вкладені атрибути вимагають PHP 8.1 або вище
class Student
{
    #[Assert\AtLeastOneOf([
        new Assert\Regex('/#/'),
        new Assert\Length(min: 10),
    ])]
    protected $plainPassword;

    #[Assert\AtLeastOneOf([
        new Assert\Count(min: 3),
        new Assert\All(
            new Assert\GreaterThanOrEqual(5)
        ),
    ])]
    protected $grades;
}

Опції

constraints

тип: array [опція за замовчуванням ]

Ця опція за замовчуванням - це масив обмежень валідації, з якого хоча б одне має бути задоволено для того, щоб валідація була успішною.

includeInternalMessages

тип: boolean за замовчуванням: true

Якщо встановлено як true, повідомлення, яке відображається при невдачі валідації, міститиме список повідомлень для внутрішніх обмежень. Див. опцію message, щоб побачити приклад.

message

тип: string за замовчуванням: Це значення має задовольняти щонайменше одне з наступних обмежень:

Це вступ до повідомлення, яке буде відображено, якщо валідація буде невдалою. За замовчуванням, далі слідуватиме список повідомлень для внутрішніх обмежень (конфігуровані з опцією includeInternalMessages) . Наприклад, якщо властивість вище grades зазнає невдачі валідації, повідомлення буде Це значення має задовольняти щонайменше одне з наступних обмежень: [1] Ця колекція має містити 3 або більше елементи. [2] Кожний елемент цієї колекції має задовольняти свій набір обмежень.

messageCollection

тип: string за замовчуванням: Кожний елемент цієї колекції має задовольняти свій набір обмежень.

Це повідомлення, яке буде відображено, якщо валідація зазнає невдачі, а внутрішнє обмеження є або All, або Collection. Див. опцію message, щоб побачити приклад.

Дата оновлення перекладу 2022-12-20

groups

тип: array | string

Визначаэ групу або групи валідації обмеження. Прочитайте більше про групи валідації.

Дата оновлення перекладу 2022-12-20

payload

тип: mixed за замовчуванням: null

Ця опція може бути використана, щоб додати довільні дані, специфічні для домену, до обмеження. Сконфігуроване корисне навантаження не використовується компонентом Validator, але його обробка повністю залежить від вас.

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