方法"电子邮件" for object" Symfony \ Component \ Form \ FormView" SqliGestionCongeBundle中不存在:默认值:add.html.twig

时间:2014-07-23 12:39:18

标签: php symfony

如何在我的表单中添加文本字段,知道它在我的实体中不存在!!

我的枝条中有这个:

 <form action="{{ path('add_conge') }}" method="post">
<h1>{{ 'Envoyer une demande de cong&eacute;'}}</h1>

 <div>
{{ form_errors(form.email) }}
{{ form_label(form.email, 'Email Collaborateur:') }}
{{ form_widget(form.email) }}
</div>

<div>
{{ form_errors(form.dateDepart) }}
{{ form_label(form.dateDepart, 'Date depart:') }}
{{ form_widget(form.dateDepart) }}
</div>
//...

我得到了这个例外:

 Method "email" for object "Symfony\Component\Form\FormView" does not exist in SqliGestionCongeBundle:Default:add.html.twig 

1 个答案:

答案 0 :(得分:5)

正如this Question中所述,您的表单类型中没有该字段。

要添加与实体/ formType不匹配的字段,您需要执行以下操作:

//where you're creating your form with the formbuilder
->add("email", "email", array("mapped"=>false);

这会在表单中添加一个与实体无关的字段。

要从中接收数据,只需在您处理表单的控制器/操作中执行此操作:

$form->get("email")->getData();