Belirli bir şablonla (e-postanın ana görünümü, ör. 2 sütun düzeni vb.) Belirli bir "düzen" (üstbilgi/altbilgi için) içeren bir e-posta göndermeye çalışıyorum.Bir alt görünümle görünüm oluşturulsun mu?
$mainView
html'de: <?= $this->content ?>
html, ancak tüm değişkenlerle birlikte $childView
html olması gerektiğinde bu her zaman NULL'tır. İşte
bir MailService.php
dosyada ben ne var:
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
Fabrikası enjekte edilir:
/** @var RendererInterface $viewRenderer */
$viewRenderer = $serviceLocator->get('viewrenderer');
, sadece kontrol benim çalışma kodları için bu görünüm değişken olarak işlemek ayarlamak zorunda kaldı ve ben onun içinde childView kullanmayın fark! !! Afedersiniz! (ZF2 çok zor, bu gerçek bir acı! Her ne zaman böyle bir problem görüyorsam, neden Meteor için döktüğümü hatırlıyorum! Gerçek hikaye!) –