Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all articles
Browse latest Browse all 1542

[SF-3.4] Formulaire - Ignorer un champ vide en update

$
0
0

Bonjour,
Je crée un formulaire de modification pour l'utilisateur ou il peut modifier :

  • Nom
  • Prenom
  • Email
  • Mot de passe

je voudrais que si le mot de passe est vide il ne change pas or, quand je soumet le formulaire il y a une erreur qui me dit

Type error: Argument 1 passed to AppBundle\Entity\User::setPassword() must be of the type string, null given, called in J:\Applications\wamp64\www\labo\CGHBasket_symf20180126_3.4.3\vendor\symfony\symfony\src\Symfony\Component\PropertyAccess\PropertyAccessor.php on line 623

// Pour corriger j'ai appliquer cette modification

   public function setPassword(?string $password)
    {
        $this->password = $password;
    }

Mais le mot de passe change tout de même.

Ce que je fais

Donc je me suis dit, si je supprime les données du password dans le PRE_SUBMIT sa réglera le probléme

 $builder->addEventListener
        (
            FormEvents::PRE_SUBMIT,
            function(FormEvent $event) {
                $form = $event->getForm();
                $user = $event->getData();

                if($user['password']['first'] == $user['password']['second'] && empty($user['password']['first'])) {
                    unset($user['password']);
                }

                dump($user);

                //$form->addError(new FormError('TEST'));

                $event->setData($user);
            }
        );

Malheureusement cela ne fonctionne pas, je pense donc que je m'y prend mal il y a sans doute une solution qui permet de dir "Si un champ est vide tu l'ignore".

Merci pour votre aide :)


Viewing all articles
Browse latest Browse all 1542

Trending Articles