C'est bien ce que je pensais, le formulaire est invalide, car le rôle n'est pas spécifié (dans le formulaire). Tu l'ajoutes par la suite.
Tu peux commencer par ajouter cette ligne :
$player->setRoles(['ROLE_PLAYER']);
avant cette ligne :
$form = $this->createForm(PlayerType::class, $player);
La meilleure pratique serait de modifier ton formulaire pour qu'il ne dépende plus de l'entité Player, mais d'un modèle.
La ligne suivante :
'data_class' => Player::class ,
doit être remplacé par :
'data_class' => PlayerModel::class,
Ensuite, tu crées une classe PlayerModel comme décrit dans ce tutoriel :
https://symfonycasts.com/screencast/...forms/form-dto
Une solution à très court terme serait de supprimer cette assertion sur ton rôle, puisque tu le remplis toi-même dans le contrôleur manuellement.
Une variante à très court terme Si tu as besoin de cet assertion pour l'administration des Player, je te recommande d'ajouter un groupe pour qu'il ne soit plus utiliser lors de l'inscription, mais uniquement dans l'administration.
https://symfony.com/doc/current/form...on_groups.html
https://symfony.com/doc/current/validation/groups.html
Une information très importante aussi : Tout utilisateur connecté et inscrit reçoit automatiquement le ROLE_USER. Donc à mon avis, tu devrais pouvoir te passer de ce ROLE_PLAYER.
Partager