我想在表单中添加相同的附加字段,但我不想在数据对象中添加字段。 这是一个例子:
$formBuilder = $this->get('form.factory')->createBuilder(new LeadType(), new LeadInfo());
$formBuilder->add('newsSubscribe', 'checkbox');
$form = $formBuilder->getForm();
但是我收到错误,因为我的对象上没有'newsSubscribe'字段,我不想添加(因为订阅与LeadInfo无关)
有没有办法解决这个问题?
答案 0 :(得分:3)
field type
(大多数表单字段默认继承)提供property_path
选项,表示字段表示的域对象上的哪个属性。您可以告诉您的复选框不要像这样写入域对象:
$formBuilder->add('newsSubscribe', 'checkbox', array(
'property_path' => false,
));
您可能还必须为您的复选框定义其他选项,因为您传递的数组可能会覆盖默认选项,但这会让您入门。使用此代码,您的POST变量中将提供newsSubscribe
,但Symfony不会尝试将其写入域对象属性。