Unique
Дата обновления перевода 2024-07-25
Unique
Валидирует, что все элементы заданной коллекции являются уникальными (ни один из
них не присутствует больше, чем единожды). По умолчанию, элементы сравниваются
строго, поэтому '7'
и 7
считаются разными элементами (строка и цифра,
соответственно). Если вы хотите применить другую логику сравнения, используйте
опцию normalizer.
See also
Если вы хотите применить другие ограничения валидации к элементам коллекции, или хотите убедиться, что присутствуют определенные ключи коллекции, используйте Collection constraint.
See also
Если вы хотите валидировать, что значение свойства сущности является уникальным среди всех сущностей одного типа (например, электронный адрес регистрации среди всех пользователей), используйте ограничение UniqueEntity.
??????????? ? | ???????? ??? ?????? |
????? | Unique |
????????? | UniqueValidator |
Базовое использование
Это ограничение может быть применено к любому свойству типа array
или
\Traversable
. В следующем примере, $contactEmails
является массивом
строк:
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 array $contactEmails;
}
Опции
fields
тип: array
| string
Это определяет ключ или ключи в коллекции, которые надо проверить на уникальность. По умолчанию, все ключи коллекции проверяются на уникальность.
Например, представьте, что у вас есть коллекция объектов, которые содержат поля
latitude
, longitude
и label
. По умолчанию, вы можете иметь дублированные
координаты, если ярлыки отличаются. Установив опцию fields
, вы можете заставитьь
долготу+широту быть уникальными в коллекции:
1 2 3 4 5 6 7 8 9 10
// src/Entity/PointOfInterest.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class PointOfInterest
{
#[Assert\Unique(fields: ['latitude', 'longitude'])]
protected array $coordinates;
}
groups
type: array
| string
default: null
It defines the validation group or groups of this constraint. Read more about validation groups.
message
тип: string
по умолчанию: Эта коллекция должна содержать только уникальные элементы.
Это сообщение будет отображено, если хотя бы один элемент в коллекции будет повторяться.
Вы можете использовать следующие параметры в сообщении:
???????? | ???????? |
---|---|
{{ value }} |
??????? ???????? (invalid) |
normalizer
тип: PHP-вызываемое по умолчанию: null
Эта опция определяет PHP-вызываемое, применимое к каждому элементу заданной коллекции, до проверки валидности коллекции.
Например, вы можете передать строку 'trim'
, чтобы применить PHP-функцию
trim к каждому элементу коллекции, для того, чтобы игнорировать
пробелы в начале и конце во время валидации.
Дата обновления перевода 2024-07-25
payload
тип: mixed
по умолчанию: null
Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.
Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.