Unique

Validates that all the elements of the given collection are unique (none of them is present more than once). By default elements are compared strictly, so '7' and 7 are considered different elements (a string and an integer, respectively). If you want to apply any other comparison logic, use the normalizer option.

指定されたコレクションのすべての要素が一意であることを検証します (複数回存在する要素はありません)。デフォルトでは、要素は厳密に比較されるため、'7' と 7 は異なる要素 (それぞれ文字列と整数) と見なされます。他の比較ロジックを適用する場合は、正規化オプションを使用します。

See also

こちらもご覧ください

If you want to apply different validation constraints to the elements of a collection or want to make sure that certain collection keys are present, use the Collection constraint.

コレクションの要素に異なる検証制約を適用する場合、または特定のコレクション キーが存在することを確認する場合は、コレクション制約を使用します。

See also

こちらもご覧ください

If you want to validate that the value of an entity property is unique among all entities of the same type (e.g. the registration email of all users) use the UniqueEntity constraint.

エンティティ プロパティの値が同じタイプのすべてのエンティティ間で一意であることを検証する場合 (たとえば、すべてのユーザーの登録電子メール)、UniqueEntity 制約を使用します。
Applies to property or method
Class Unique
Validator UniqueValidator

Basic Usage

This constraint can be applied to any property of type array or \Traversable. In the following example, $contactEmails is an array of strings:

この制約は、配列型または\Traversable型の任意のプロパティに適用できます。次の例では、$contactEmails は文字列の配列です。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    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;
}

Options

fields

type: array | string

タイプ: 配列 |ストリング

6.1

6.1

The fields option was introduced in Symfony 6.1.

fields オプションは Symfony 6.1 で導入されました。

This is defines the key or keys in a collection that should be checked for uniqueness. By default, all collection keys are checked for uniqueness.

これは、一意性をチェックする必要があるコレクション内のキーを定義します。デフォルトでは、すべてのコレクション キーの一意性がチェックされます。

For instance, assume you have a collection of items that contain a latitude, longitude and label fields. By default, you can have duplicate coordinates as long as the label is different. By setting the fields option, you can force latitude+longitude to be unique in the collection:

たとえば、緯度、経度、およびラベル フィールドを含むアイテムのコレクションがあるとします。デフォルトでは、ラベルが異なる限り、重複した座標を持つことができます。 fields オプションを設定することにより、コレクション内で緯度と経度を強制的に一意にすることができます。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    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;
}

groups

type: array | string

タイプ: 配列 |ストリング

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

この制約の検証グループを定義します。検証グループの詳細を参照してください。

message

type: string default: This collection should contain only unique elements.

タイプ: 文字列 デフォルト: このコレクションには、一意の要素のみを含める必要があります。

This is the message that will be shown if at least one element is repeated in the collection.

これは、コレクション内で少なくとも 1 つの要素が繰り返される場合に表示されるメッセージです。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ value }} The current (invalid) value

normalizer

type: a PHP callable default: null

タイプ: PHP 呼び出し可能デフォルト: null

This option defined the PHP callable applied to each element of the given collection before checking if the collection is valid.

このオプションは、コレクションが有効かどうかをチェックする前に、指定されたコレクションの各要素に適用される PHP 呼び出し可能オブジェクトを定義しました。

For example, you can pass the 'trim' string to apply the trim PHP function to each element of the collection in order to ignore leading and trailing whitespace during validation.

たとえば、「trim」文字列を渡して、trimPHP 関数をコレクションの各要素に適用し、検証中に先頭と末尾の空白を無視することができます。

payload

type: mixed default: null

タイプ: 混合 デフォルト: 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.

このオプションは、任意のドメイン固有のデータを制約に添付するために使用できます。構成されたペイロードは Validator コンポーネントによって使用されませんが、その処理は完全にユーザー次第です。

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.

たとえば、いくつかのエラー レベルを使用して、エラーの重大度に応じて、失敗した制約をフロントエンドで異なる方法で提示することができます。