Symfony: запишете null вместо празен низ

Имам таблица и една от колоните може да е нулева.

В symfony, с генерирана форма, когато оставя полето за тази колона празно, скриптът записва в базата данни празен низ вместо нула.

Как да го промените?


person WombaT    schedule 06.01.2012    source източник


Отговори (3)


Можете да замените функцията doSave() във вашия формуляр, след като проверите и зададете стойността на вашия формуляр, за да правите каквото искате.

  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()
    }
person richrosa    schedule 06.01.2012

В Symfony 4 можете да дефинирате във вашето поле на формуляр

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

Предполагам, че бихте могли да направите нещо подобно:
if (empty($var)) $var = null;

person Lior    schedule 06.01.2012