Salut tout le monde,
J'ai une entité Personne qui possède des attributs notamment $lastName et $firstName qui n'accepte pas les valeurs null.
Du coup, j'aimerais tester le validator qui peut se baser sur les contraintes de l'entité pour faire des validations basique grâce au paramètre automapping. Voilà, le lien de la documentation qui en parle: https://symfony.com/doc/current/doct...dating-objects. D'ailleurs, je me base sur la doc pour faire mon test.
Je paramètre donc cela dans config/packages/validator.yaml:
Du coup, je met exactement la configuration indiquée dans le fichier de conf validator.yaml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 framework: validation: email_validation_mode: html5 # Enables validator auto-mapping support. # For instance, basic validation constraints will be inferred from Doctrine's metadata. #auto_mapping: # App\Entity\: [] auto_mapping: App\Entity\: [] when@test: framework: validation: not_compromised_password: false
Mon controller:
Lorsque je me rend sur /personne, j'obtiens une erreur HTTP 500:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php namespace App\Controller; use App\Entity\Personne; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; class PersonneController extends AbstractController { #[Route('/personne', name: 'create_personne')] public function createPersonne( ValidatorInterface $validator ): Response { $personne = new Personne(); $personne->setFirstName(null); $personne->setLastName('Brochard'); $personne->setHeight(2); $personne->setBio('Une petite bio'); $errors = $validator->validate($personne); if (count($errors) > 0) { return new Response((string) $errors, 400); } } }
au lieu de faire fonctionner le validator et avoir une erreur 400.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 App\Entity\Personne::setFirstName(): Argument #1 ($firstName) must be of type string, null given,
Savez vous ce qu'il me manque pour faire fonctionner l'auto_mapping s'il vous plaît?
Je vous remercie par avance,
Partager