我提交表单时无法在数据库中找到数据而且没有错误,我需要你的帮助
我无法将数据插入到数据库symfony2 doctrine中 如果你发现错误请提及 //这是我的联系人行动
public function contactUsAction() { // contact action
$contact = new Contact();
$form = $this->createForm(new ContactType(), $contact);
$request = $this->getRequest();
if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($contact);
$em->flush();
$this->get('session')->getFlashBag()->add('Notice', 'Votre message a été bien envoyé');
}
}
return $this->render('carRentalMainBundle:Main:contactUs.html.twig', array(
'form' => $form->createView(),
));
}
// And this is my view
this is my view
{% extends 'carRentalMainBundle::layout.html.twig' %}
{% block body %}
<div class="col-md-6">
<h3>Contactez-nous</h3>
{% for flashMessage in app.session.flashbag.get('Notice') %}
<ul><li class="alert-success">
{{flashMessage}}
</li></ul>
{% endfor%}
<br/>
<form method="POST" action="{{path('car_rental_main_contact')}}" {{form_enctype(form)}} >
<div class='form-group'>
{{form_errors(form.name)}}
{{form_label(form.name,' Nom :')}}
{{form_widget(form.name)}}
</div>
<div class='form-group'>
{{form_errors(form.email)}}
{{form_label(form.email,' Email :')}}
{{form_widget(form.email)}}
</div>
<div class='form-group'>
{{form_errors(form.subject)}}
{{form_label(form.subject,' Sujet :')}}
</div>
{{form_widget(form.subject)}}
<div class='form-group'>
{{form_errors(form.content)}}
{{form_label(form.content,'Message :')}}
{{form_widget(form.content)}}
</div>
{{form_rest(form)}}
<input type="submit" class="btn-primary btn" value="Envoyer" >
</form>
</div>
{% endblock %}
感谢您的帮助
答案 0 :(得分:2)
如果您使用的Symfony版本&gt; = 2.3,我想提供一些建议,您可以使用$form->handleRequest($request)
来减少代码。有关它的更多信息,您可以从here ...
关于您的问题,您可以在模板中设置{{form_errors(form)}}
,如上所述。或者通过$form->getErrorsAsString()
在控制器中获取错误报告。
代码示例:
public function contactUsAction(Request $request) { // contact action
$contact = new Contact();
$form = $this->createForm(new ContactType(), $contact);
$form->handleRequest($request);
if ($form->isValid())
{
// if need to catch database flush exceptions
try
{
$em = $this->getDoctrine()->getManager();
$em->persist($contact);
$em->flush();
$this->get('session')->getFlashBag()->add('Notice', 'Votre message a été bien envoyé');
} catch (\Exception $e)
{
$this->get('session')->getFlashBag()->add('Notice', $e->getMessage());
}
}
return $this->render('carRentalMainBundle:Main:contactUs.html.twig', array(
'form' => $form->createView(),
// for debug only
'form_errors_list' => $form->getErrorsAsString(),
));
}
在您的模板中,您可以设置(仅适用于调试过程):
<pre>{{dump(form_errors_list)}}</pre>
答案 1 :(得分:0)
提交后是否有flashMessage?如果不是,则添加{{form_errors(form)}}以查看表单错误。