EnableAutoMapping
This constraint allows to enable Doctrine's auto mapping on a class or a property. Automapping allows to determine validation rules based on Doctrine's attributes. You may use this constraint when automapping is globally disabled, but you still want to enable this feature for a class or a property specifically.
Applies to | property or method |
Class | EnableAutoMapping |
Basic Usage
In the following example, the EnableAutoMapping constraint will tell the validator to gather constraints from Doctrine's metadata:
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 Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
#[Assert\EnableAutoMapping]
class BookCollection
{
#[ORM\Column(nullable: false)]
protected string $name = '';
#[ORM\ManyToOne(targetEntity: Author::class)]
public Author $author;
// ...
}
1 2 3 4
# config/validator/validation.yaml
App\Entity\BookCollection:
constraints:
- EnableAutoMapping: ~
1 2 3 4 5 6 7 8 9 10
<!-- config/validator/validation.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="App\Entity\BookCollection">
<constraint name="EnableAutoMapping"/>
</class>
</constraint-mapping>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// src/Entity/BookCollection.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Mapping\ClassMetadata;
class BookCollection
{
// ...
public static function loadValidatorMetadata(ClassMetadata $metadata): void
{
$metadata->addConstraint(new Assert\EnableAutoMapping());
}
}
Options
The groups
option is not available for this constraint.
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.