Valid

This constraint is used to enable validation on objects that are embedded as properties on an object being validated. This allows you to validate an object and all sub-objects associated with it.

この制約は、検証対象のオブジェクトのプロパティとして埋め込まれているオブジェクトの検証を有効にするために使用されます。これにより、オブジェクトとそれに関連付けられたすべてのサブオブジェクトを検証できます。
Applies to property or method
Class Valid

Tip

ヒント

By default, the error_bubbling option is enabled for the collection Field Type, which passes the errors to the parent form. If you want to attach the errors to the locations where they actually occur you have to set error_bubbling to false.

デフォルトでは、コレクション フィールド タイプに対して error_bubbling オプションが有効になっており、エラーが親フォームに渡されます。エラーを実際に発生した場所に添付する場合は、error_bubbling を false に設定する必要があります。

Basic Usage

In the following example, create two classes Author and Address that both have constraints on their properties. Furthermore, Author stores an Address instance in the $address property:

次の例では、Author と Address の 2 つのクラスを作成します。どちらもプロパティに制約があります。さらに、著者は Address インスタンスを $address プロパティに格納します。
1
2
3
4
5
6
7
8
// src/Entity/Address.php
namespace App\Entity;

class Address
{
    protected $street;
    protected $zipCode;
}
1
2
3
4
5
6
7
8
9
// src/Entity/Author.php
namespace App\Entity;

class Author
{
    protected $firstName;
    protected $lastName;
    protected $address;
}
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// src/Entity/Address.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Address
{
    #[Assert\NotBlank]
    protected $street;

    #[Assert\NotBlank]
    #[Assert\Length(max: 5)]
    protected $zipCode;
}

// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    #[Assert\NotBlank]
    #[Assert\Length(min: 4)]
    protected $firstName;

    #[Assert\NotBlank]
    protected $lastName;

    protected $address;
}

With this mapping, it is possible to successfully validate an author with an invalid address. To prevent that, add the Valid constraint to the $address property.

このマッピングを使用すると、無効なアドレスを持つ著者を正常に検証できます。これを防ぐには、Valid 制約を $address プロパティに追加します。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    #[Assert\Valid]
    protected $address;
}

If you validate an author with an invalid address now, you can see that the validation of the Address fields failed.

ここで、無効な住所で作成者を検証すると、住所フィールドの検証が失敗したことがわかります。
1
2
App\Entity\Author.address.zipCode:
    This value is too long. It should have 5 characters or less.

Tip

ヒント

If you also want to validate that the address property is an instance of the App\Entity\Address class, add the Type constraint.

アドレス プロパティが App\Entity\Address クラスのインスタンスであることも検証する場合は、Type 制約を追加します。

Options

groups

type: array | string

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

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

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

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.

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

traverse

type: boolean default: true

タイプ: ブール デフォルト: true

If this constraint is applied to a \Traversable, then all containing values will be validated if this option is set to true. This option is ignored on arrays: Arrays are traversed in either case. Keys are not validated.

この制約が \Traversable に適用される場合、このオプションが true に設定されていると、含まれているすべての値が検証されます。このオプションは onarrays では無視されます。どちらの場合でも、配列はトラバースされます。キーは検証されません。