Форма SF2: ошибка Ни свойство … ни один из методов «получить

Я пытаюсь сделать контактную форму с Symfony 2.4.1, и у меня есть следующая ошибка:

Neither the property "contact" nor one of the methods "getContact()", "isContact()", "hasContact()", "__get()" exist and have public access in class "Open\OpcBundle\Entity\Contact". 

Я понимаю эту ошибку, но я нахожу что-нибудь для ее решения в документации по формам SF2 или в Интернете:

Код контроллера:

 [..] class OpcController extends Controller { public function contactAction(Request $request) { $contact = new Contact(); $form = $this->createForm(new ContactType(), $contact); $form->handleRequest($request); return $this->render("OpenOpcBundle:Opc:contact.html.twig", array("formu" => $form->createView(), ) ); } } 

Контактное лицо:

 [...] class Contact { protected $nom; protected $courriel; protected $sujet; protected $msg; public function getNom() { return $this->nom; } public function setNom($nom) { $this->nom = $nom; } public function getCourriel() { return $this->courriel; } public function setCourriel($courriel) { $this->courriel = $courriel; } public function getSujet() { return $this->sujet; } public function setSujet($sujet) { $this->sujet = $sujet; } public function getMsg() { return $this->msg; } public function setMsg($msg) { $this->msg = $msg; } } 

И код класса Form:

 public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('contact'); ->add('nom', 'text')) ->add('courriel', 'email') ->add('sujet', 'text') ->add('msg', 'textarea') ->add('submit', 'submit'); } public function getName() { return "Contact"; } public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array('data_class' => 'Open\OpcBundle\Entity\Contact', )); } } 

Любая идея проблемы? благодаря

Ваша ошибка верна и сообщит вам, что ваша организация Contact не имеет свойства contact и никакого связанного метода buildForm() getter, в то время как в вашем buildForm() вы использовали свойство контакта, например $builder->add('contact'); но в объекте отсутствует связанное свойство. Определите свойство сначала в своей сущности

 class Contact { protected $nom; protected $courriel; protected $sujet; protected $msg; protected $contact; public function getContact() { return $this->contact; } public function setContact($contact) { $this->contact= $contact; } /* ... remaining methods in entity */ } 

или если это не отображаемое поле, тогда вы должны определить это поле в построителе как не отображаемое

 $builder->add('contact','text',array('mapped'=>false)); 

Определив выше, вам не нужно обновлять свою сущность