Я представляю форму symfony2, и я хотел бы установить для определенного свойства Entity значение false, если поле электронной почты для этого объекта не было заполнено и это свойство было отправлено как «истина».
Я делаю это сейчас:
$myForm = $this->createForm(new FormType(), $myEntity); $myForm->handleRequest($request); if ($myForm->isValid()) { if (!$myEntity->getEmail()) { $myEntity->setProperty(false); } }
Теперь я ожидаю, что флажок, соответствующий свойству, будет снят, когда форма будет показана после отправки. Но флажок свойства в форме не отвечает на это, он остается установленным.
Кто-нибудь знает, как это сделать правильно?
Я думаю, это потому, что ваша форма уже привязана к сущности. Форма принимает данные объекта и не обновляется при изменении объекта. Вы можете напрямую работать с формой:
$myForm['someProperty']->setData( false );
но я надеюсь, что лучше всего полностью восстановить форму снова в соответствии с вашей первой строкой.