我尝试在Symfony2中发送联系表单,但我有错误:
Variable "form" does not exist in VputiMainBundle:Main:contact.html.twig at line 20
这是我的控制器:
public function contactAction(Request $request)
{
$form = $this->createForm(new ContactType());
$formView = $form->createView();
$form->handleRequest($request);
if ($form->isValid()) {
$message = \Swift_Message::newInstance()
->setSubject($form->get('subject')->getData())
->setFrom($form->get('email')->getData())
->setTo('mail.com.deu')
->setBody(
$this->renderView(
'VputiMainBundle:Main:contact.html.twig',
array(
'ip' => $request->getClientIp(),
'name' => $form->get('name')->getData(),
'message' => $form->get('body')->getData()
)
)
);
if ($this->get('mailer')->send($message)) {
$this->get('session')->getFlashBag()->add('message_send', 'thanks!');
} else {
$this->get('session')->getFlashBag()->add('send_error', 'error!');
}
}
return $this->render('VputiMainBundle:Main:contact.html.twig', array('form' => $formView));
}
我的问题出在哪里,我做错了什么?
答案 0 :(得分:1)
您使用相同的模板来显示发送联系请求的表单和邮件正文。注意两个VputiMainBundle:Main:contact.html.twig
。如果表单有效,它会尝试呈现contact.html.twig
,显然需要form
变量。
为邮件正文创建一个不依赖于表单视图的新模板。