2016-03-02 1 views
2

У меня есть проблема с отправкой почты, так как symfony 2.8 с SwiftMailer. Раньше я использовал этот метод:SwiftMailer setBody с базой данных

$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('[email protected]') 
        ->setTo($insti->getEmail()) 
        ->setContentType("text/html") 
        ->setBody($body); 
       $this->get('mailer')->send($message); 

Спасибо за помощь :)!

EDIT:

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

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

Как я могу вставить этот "$ parametersFinal" в теле?

+0

Что возвращает '$ email-> getCorp()' return? –

+0

Поле в базе данных, содержащее html-сообщение (тело письма). – pouletomorilles

+0

Ваше редактирование похоже, что его лучше обслуживать как отдельный вопрос. –

ответ

1

По вашему комментарию, HTML существует, вызвав функцию getCorp(), в этом случае ваш код должен быть вместо этого:

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

render() функция ожидает имя шаблона для отображения в качестве первого аргумента, и необязательный массив параметров для перехода к этому шаблону.

+0

Да, это работает! Спасибо большое! Теперь я отредактирую сообщение, потому что мне нужно вставить параметры твига в тело html. – pouletomorilles