如何添加未在Entity中定义的字段?

时间:2011-08-10 11:48:50

标签: forms symfony dto

我想在表单中添加相同的附加字段,但我不想在数据对象中添加字段。 这是一个例子:

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

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

但是我收到错误,因为我的对象上没有'newsSubscribe'字段,我不想添加(因为订阅与LeadInfo无关)

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:3)

field type(大多数表单字段默认继承)提供property_path选项,表示字段表示的域对象上的哪个属性。您可以告诉您的复选框不要像这样写入域对象:

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

您可能还必须为您的复选框定义其他选项,因为您传递的数组可能会覆盖默认选项,但这会让您入门。使用此代码,您的POST变量中将提供newsSubscribe,但Symfony不会尝试将其写入域对象属性。