Как добавить поля, которые не определены в Entity? - PullRequest
1 голос
/ 10 августа 2011

Я хочу добавить такие же дополнительные поля в мою форму, но я не хочу, чтобы они были в объекте данных.Вот пример:

    $formBuilder = $this->get('form.factory')->createBuilder(new LeadType(), new LeadInfo());

    $formBuilder->add('newsSubscribe', 'checkbox');
    $form = $formBuilder->getForm();

Но я получаю ошибку, потому что в моем объекте нет поля «newsSubscribe», и я не хочу добавлять (потому что подписка не имеет отношения к LeadInfo)

Есть ли способ решить это?

1 Ответ

3 голосов
/ 10 августа 2011

field type (большинство полей формы наследуются по умолчанию) предоставляет параметр property_path, который указывает, какое свойство объекта домена представляет поле. Вы можете указать свой флажок не писать объекту домена, например, так:

$formBuilder->add('newsSubscribe', 'checkbox', array(
    'property_path' => false,
));

Возможно, вам придется определить и другие параметры для вашего флажка, поскольку вы передаете массив, который может перезаписывать параметры по умолчанию, но это поможет вам начать работу. С этим кодом newsSubscribe будет доступно в ваших переменных POST, но Symfony не будет пытаться записать его в свойство объекта домена.

...