Unique

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

Unique

Валідує, що всі елементи заданої колекції є унікальними (жоден з них не присутній більше одного разу). За замовчуванням, елементи порівнюються строго, тому '7' і 7 вважаються різними елементами (рядок та ціле число, відповідно). Якщо ви хочете застосувати будь-яку іншу логіку порівняння, використайте опцію normalizer.

See also

Якщо ви хочете застосувати інші обмеження валідації до елементів колекції, або хочете переконатися, що присутні певні ключі колекції, використайте обмеження Collection.

See also

Якщо ви хочете валідувати, що значення властивості сутності унікальне серед всіх сутностей одного типу (наприклад, електронна пошта реєстрації усіх користувачів), використайте обмеження UniqueEntity.

?????????????? ?? ??????????? ??? ??????
???? Unique
????????? UniqueValidator

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

Це обмеження може бути застосовано до будь-якої властивості типу array або \Traversable. У наступному прикладі, $contactEmails є масивом рядків:

  • Attributes
  • YAML
  • XML
  • PHP
1
2
3
4
5
6
7
8
9
10
// src/Entity/Person.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Person
{
    #[Assert\Unique]
    protected $contactEmails;
}

Опції

fields

тип: array | string

6.1

Опція fields була представлена в Symfony 6.1.

Це визначає ключ або ключі у колекції, які мають бути перевірені на унікальність. За замовчуванням, всі ключі колекції перевіряються на унікальність.

Наприклад, припустіть, що у вас є колекція обʼєктів, які містять поля latitude, longitude та label. За замовчування, ви можете мати дубльовані координати, якщо ярлики відрізняються. Встановивши опцію fields, ви можете форсувати унікальні широту+довготу у колекції:

  • Attributes
  • YAML
  • XML
  • PHP
1
2
3
4
5
6
7
8
9
10
// src/Entity/Poi.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Poi
{
    #[Assert\Unique(fields=['latitude', 'longitude'])]
    protected $coordinates;
}

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

groups

тип: array | string

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

message

тип: string за замовчуванням: Ця колекція має містити лише унікальні елементи.

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

Ви можете використати наступні параметри у цьому повідомленні:

???????? ????
{{ value }} ??????? (?????????) ????????

normalizer

тип: PHP-викличне за замовчуванням: null

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

Наприклад, ви можете передати рядок 'trim', щоб застосувати PHP-функцію trim до кожного елемента колекції, щоб ігнорувати початкові та кінцеві пробіли під час валідації.

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

payload

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

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

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