Symfony : Checkbox Multiplde

Petit nouveau ! | 6 Messages

02 mai 2019, 17:41

Hello tout le monde,

Dans un formulaire j'aimerais que l'user puisse sélectionner plusieurs éléments, seulement quand j'essaye d'appliquer la documentation ( que je dois mal comprendre ) j'obtiens ce message d'erreur :

Expected argument of type "string or null", "array" given at property path "caractere_emotion".


Mon PersonnageType.php :

->add('caractere_emotion', ChoiceType::class, [
                'required' => false,
                'label' => 'Émotions',
                'choices' => [
                    'Actif' => 'Actif',
                    'Créatif' => 'Créatif',
                    'Génie' => 'Génie',
                    'Créatif' => 'Créatif',
                    'Joyeux' => 'Joyeux',
                    'Morose' => 'Morose',
                    'Pitre' => 'Pitre',
                    'Romantique' => 'Romantique',
                    'Sang Chaud' => 'Sang Chaud',
                    'Sûr de lui' => 'Sûr de lui',
                ],
                'expanded' => true,
                'multiple' => true,
            ])

Mon entité Personnage :

   /**
     * @ORM\Column(type="array", nullable=true)
     */
    private $caractere_emotion;
    

Je ne vois pas trop ce que je dois modifier.

Merci par avance pour votre aide.

Avatar du membre
Mammouth du PHP | 1609 Messages

03 mai 2019, 14:57

Salut, à quelle moment as tu cette erreur ? lors du rendu du formulaire ? lors de sa soumission ? que dit la stacktrace de la page d'exception Symfony ?
Développeur web depuis + de 20 ans

Petit nouveau ! | 6 Messages

03 mai 2019, 15:38

Hello,
J'ai ce message lors de la soumission du formulaire.

Avatar du membre
Mammouth du PHP | 1609 Messages

03 mai 2019, 16:26

Et que dit la page d'exception en détail ?
Développeur web depuis + de 20 ans

Petit nouveau ! | 6 Messages

03 mai 2019, 16:50

Alors la capture d'écran que me renvoie le exception : http://zupimages.net/viewer.php?id=19/18/q2hr.png

Petit nouveau ! | 6 Messages

04 mai 2019, 11:27

J'ai réessayé et ça marche en créant une nouvelle entité. En fait, j'ai l'impression que c'est lorsque j'ai créé mon entité au tout début via la console, j'avais attribué comme type string au lieu de array. C'est après dans l'entité que je l'ai modifié en array. J'ai ensuite utilisé la commande php bin/console doctrine:schema:update --force pour mettre à jour mais nop... donc je ne vois pas pourquoi.

Avatar du membre
Mammouth du PHP | 1609 Messages

14 mai 2019, 18:59

Salut, en effet le message d'erreur colle bien avec ce que tu décris. Le ChoiceType qui retourne un array mais l'entité qui attend un string ou null.
Tu dis qu'après modification de l'entité et mise à jour de la base de données tu obtiens toujours cette même erreur ?
Si tu utilises un cache au niveau de l'ORM le problème pourrait peut être venir de là ? il suffirait dans ce cas de nettoyer ce cache.
Développeur web depuis + de 20 ans