Я пытаюсь отправить электронное письмо с конкретным «макетом» (для заголовка/нижнего колонтитула) с определенным шаблоном (основной вид электронной почты, например, расположение в 2 столбца и т. Д.).Изящный вид с детским видом?
$mainView
html имеет: <?= $this->content ?>
, но это всегда NULL, когда он должен быть $childView
html со всеми переменными.
Вот что я имею в MailService.php
файле:
public function createMessage($to, $subject, $template, $variables) : Message
{
// Create mail
$message = new Message();
// Create mail body
$mainView = new ViewModel();
$mainView->setTerminal(true);
$mainView->setTemplate('layout/mail.phtml');
$childView = new ViewModel();
$childView->setTerminal(true);
$childView->setTemplate($template);
$childView->setVariables($variables);
$mainView->addChild($childView, 'content');
$msgRender = $this->viewRenderer->render($mainView);
$body = new Part($msgRender);
$body->setType(Mime::TYPE_HTML);
$messageBody = new MessageBody();
$messageBody->addPart($body);
$message->setBody($messageBody);
$message->setTo($to);
$message->setSubject($subject);
return $message;
}
$this->viewRenderer
впрыскивается в Factory:
/** @var RendererInterface $viewRenderer */
$viewRenderer = $serviceLocator->get('viewrenderer');
Я хотел бы помочь, я только что проверил мои рабочие коды, и я понимаю, что я не использую childView в нем! !! Сожалею! (ZF2 так тяжело, это настоящая боль! Всякий раз, когда я вижу такую проблему, я помню, почему я сбрасываю ее для Метеор! Истинная история!) –