Skip to content

Cascade

Edit this page

The Cascade constraint is used to validate a whole class, including all the objects that might be stored in its properties. Thanks to this constraint, you don't need to add the Valid constraint on every child object that you want to validate in your class.

Applies to class
Class Cascade

Basic Usage

In the following example, the Cascade constraint will tell the validator to validate all properties of the class, including constraints that are set in the child classes BookMetadata and Author:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// src/Model/BookCollection.php
namespace App\Model;

use App\Model\Author;
use App\Model\BookMetadata;
use Symfony\Component\Validator\Constraints as Assert;

#[Assert\Cascade]
class BookCollection
{
    #[Assert\NotBlank]
    protected string $name = '';

    public BookMetadata $metadata;

    public Author $author;

    // ...
}

Options

The groups option is not available for this constraint.

exclude

type: array | string default: null

This option can be used to exclude one or more properties from the cascade validation.

6.3

The exclude option was introduced in Symfony 6.3.

payload

type: mixed default: 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.

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.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.
TOC
    Version