SwiftMailer setBody与数据库

时间:2016-03-02 15:22:32

标签: symfony twig swiftmailer

我有一个问题是发送邮件,因为symfony 2.8与SwiftMailer。 之前,我使用过这种方法:

$body = $this->twig->render($email->getCorp());

使用外部服务,但现在我有这个错误:

  

无法在数据库中找到模板“<div> ...模板...”

我也试过了,我也遇到了同样的错误:

$email = $em->getRepository('BoAdminBundle:Email')->find(3);
$body = $this->render($email->getCorp());
$message = Swift_Message::newInstance()
                    ->setSubject('Subject')
                    ->setFrom('mail@mail.com')
                    ->setTo($insti->getEmail())
                    ->setContentType("text/html")
                    ->setBody($body);
                $this->get('mailer')->send($message);

感谢您的帮助:)!

编辑

    $parametersFinal = array_merge($replaces, $replacesInsti); // $replacesInsti = array the client's informations

    $body = $this->twig->render($email->getCorp(), $parametersFinal); 

如何在正文中插入“$ parametersFinal”?

1 个答案:

答案 0 :(得分:1)

根据您的评论,HTML通过调用getCorp()函数而存在,在这种情况下,您的代码应该是:

$email = $em->getRepository('BoAdminBundle:Email')->find(3);
$message = Swift_Message::newInstance()
    ->setSubject('Subject')
    ->setFrom('mail@mail.com')
    ->setTo($insti->getEmail())
    ->setContentType("text/html")
    ->setBody($email->getCorp())
;
$this->get('mailer')->send($message);

render()函数需要将模板的名称作为其第一个参数进行渲染,并将一个可选的参数数组传递给该模板。