不能在Symfony 2中发送联系表格

时间:2014-10-15 14:08:57

标签: php symfony twig contact-form

我尝试在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));
}

我的问题出在哪里,我做错了什么?

1 个答案:

答案 0 :(得分:1)

您使用相同的模板来显示发送联系请求的表单和邮件正文。注意两个VputiMainBundle:Main:contact.html.twig。如果表单有效,它会尝试呈现contact.html.twig,显然需要form变量。

为邮件正文创建一个不依赖于表单视图的新模板。