2 votes

Symfony : enregistrer null au lieu de la chaîne vide

J'ai une table et une des colonnes peut être nulle.

Dans symfony, avec le formulaire généré, lorsque je laisse le champ pour cette colonne vide, script enregistre dans la base de données une chaîne vide au lieu de null.

Comment le changer ?

3voto

richrosa Points 635

Vous pouvez remplacer la fonction doSave() dans votre formulaire après avoir vérifié et défini la valeur de votre formulaire pour faire ce que vous voulez.

  protected function doSave($con = null) {

    if ($this->getValue('myFormValue') == '') {  // do whatever test you want to determine if the variable should be null
        $this->setMyFormValue(null);  // if it is, set it null
        } 
    parent::doSave($con);  // continue with the parent save()
    }

0voto

WiRight Points 41

Dans Symfony 4 vous pouvez définir dans votre champ de formulaire

$formBuilder->add('field_name', TextType::class, [
  'required' => false, // optional
  'empty_data' => '', // it mean if null -> set ''
])

-1voto

Lior Points 833

Je suppose que vous pourriez faire quelque chose comme ça :
if (empty($var)) $var = null;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X