0
这里是我的形式上市:Symfony2的额外领域FormError与隐藏字段验证表单
$builder = $this->createFormBuilder($project)
->add('name','text')
->add('type','choice', array(
'choices' => $enumtype
))
->add('begindate','date')
->add('expecteddate','date')
->add('events', 'collection', array(
'type' => new EventType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
))
->add('financial', 'file', array(
'property_path' => false,
'required' => false
))
->add('investition', 'file', array(
'property_path' => false,
'required' => false
));
if ($defaults) {
$builder->add('id','hidden',array('data' => $defaults['id'], 'property_path' => false));
$form = $builder->getForm();
$form->setData($defaults);
}
else
$form = $builder->getForm();
当我试图验证这种形式,我收到FormError对象:
Array (
[0] => Symfony\Component\Form\FormError Object (
[messageTemplate:protected] => This form should not contain extra fields.
[messageParameters:protected] => Array (
[{{ extra_fields }}] => id
)
[messagePluralization:protected] =>
)
)
如果我排除“ID”字段 - 一切正常。 我如何使用隐藏类型并进行验证?
询问时设置你做了同样的FormType类还是你绑定到一个实体?如果是后者,可能性是绑定到未定义的属性(id),或者它是不能以这种方式在窗体中设置的主键。 – phpisuber01
我将它绑定到一个实体,但这是未定义的属性。名称无关紧要。 – Aronsky