我正在尝试向表单添加两个额外的字段:
$this->contactForm = $this->createFormBuilder($contact, array('allow_extra_fields' =>true))
->add('Nom', TextType::class)
->add('Prenom', TextType::class)
->add('Telephone', TextType::class, array(
'label' => 'Téléphone'))
->add('Email', TextType::class)
->add('Ajouter', SubmitType::class)
->getForm();
但是我收到了这个错误:
属性“Nom”和方法“getNom()”,“nom()”,“isNom()”,“hasNom()”,“__ get()”都不存在,并且在课堂上具有公共访问权限“CommonBundle \实体\联系”。
如何防止此错误?
答案 0 :(得分:4)
allow_extra_fields
适用于提交表单时,它允许您的表单中未指定的字段也可以在您的表单中传递,如果在提交表单时,它包含一个字段,用于表单。 foobar的'它不会抛出错误说"表单不应包含额外的字段"。
因为' Nom'在未映射到您的实体中时,您需要指定该字段未映射。有关信息,请参阅http://symfony.com/doc/current/reference/forms/types/form.html#mapped
$this->contactForm = $this->createFormBuilder($contact, array('allow_extra_fields' =>true))
->add('Nom', TextType::class, array('mapped'=>false))
->add('Prenom', TextType::class)
->add('Telephone', TextType::class, array(
'label' => 'Téléphone'))
->add('Email', TextType::class)
->add('Ajouter', SubmitType::class)
->getForm();