我正在尝试向表单添加两个额外的字段:
$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();
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
属性“Nom”和方法“getNom()”、“nom()”、“isNom()”、“hasNom()”、“__get()”都不存在并且在类“CommonBundle\”中具有公共访问权限实体\联系人”。
我怎样才能防止这个错误?
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();
Run Code Online (Sandbox Code Playgroud)