2016-03-25 106 views
1

我想了两个附加字段添加到窗体:Symfony3 allow_extra_fields

$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(); 

但我得到这个错误:

Neither the property "Nom" nor one of the methods "getNom()", "nom()", "isNom()", "hasNom()", "__get()" exist and have public access in class "CommonBundle\Entity\Contact".

如何避免这个错误?

回答

2

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'=>falsed)) 
->add('Prenom',  TextType::class) 
->add('Telephone', TextType::class, array(
    'label' => 'Téléphone')) 
->add('Email',  TextType::class) 
->add('Ajouter', SubmitType::class) 
->getForm(); 
+0

感谢您的帮助。 –