/** * @ORM\ManyToOne(targetEntity="Category", fetch="EAGER") * @ORM\JoinColumn(name="category_id", referencedColumnName="id", nullable=true) */ protected $category;
Formularz dla tego pola:
'label' => 'Kategoria' ))
Pojawiaja się <select> z Kategoriami i pusta opcja, wszystko dobrze działa, ale gdy już ustawimy jakąś Kategorię, To potem nie da się już tej Kategorii usunąć dając na pustą <option>, po przeładowaniu dalej pozostaje kategria wcześniej ustawiona.
Ponieważ w evencie PRE_SUBMIT
$data = $event->getData(); $data['category'] //string '' (length=0)
kategoria jest pustym stringiem wiec dodalem fix.
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) { $data = $event->getData(); if ($data['category'] == '') $data['category'] = null; $event->setData($data); });
Ale to powinno działać dobrze bez tego fixu, jakiejś opcji zapomniałem skonfigurować czy to jest bug w sf2 ?
Mój fix, który wczoraj napisałem okazał się złudzeniem, dalej nie działało. Nie tu był problem.
Okazało się, że usunięcie fetch="EAGER" z kody poniżej pomogło.
/** * @ORM\ManyToOne(targetEntity="Category", fetch="EAGER") * @ORM\JoinColumn(name="category_id", referencedColumnName="id", nullable=true) */ protected $category;
Tylko co ma piernik do wiatraka