Метод getContext класса TemplatedEmail
Класс TemplatedEmail позволяет создавать письма на основе Twig-шаблонов.
Метод getContext возвращает массив контекста, который был
передан в шаблон письма. Этот массив содержит переменные,
доступные внутри Twig-шаблона при рендеринге письма.
Параметров метод не принимает.
Синтаксис
public function getContext(): array
Пример
Давайте создадим письмо, передадим в него контекст
и получим этот контекст обратно с помощью метода getContext:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMimeEmailEmail;
use SymfonyComponentMimeEmailTemplatedEmail;
use SymfonyComponentMailerMailerInterface;
class EmailController extends AbstractController
{
public function send(MailerInterface $mailer): Response
{
$email = (new TemplatedEmail())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Hello')
->htmlTemplate('email/hello.html.twig')
->context([
'name' => 'user',
'code' => 'abcde',
]);
$res = $email->getContext();
return new Response(print_r($res, true));
}
}
?>
Результат выполнения кода:
["name" => "user", "code" => "abcde"]
Пример
Если контекст не был задан, метод getContext вернёт пустой массив:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMimeEmailTemplatedEmail;
class EmailController extends AbstractController
{
public function send(): Response
{
$email = (new TemplatedEmail())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Hello')
->htmlTemplate('email/hello.html.twig');
$res = $email->getContext();
return new Response(print_r($res, true));
}
}
?>
Результат выполнения кода:
[]
Пример
Давайте передадим в контекст несколько значений разных типов
и посмотрим, что вернёт метод getContext:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentMimeEmailTemplatedEmail;
class EmailController extends AbstractController
{
public function send(): Response
{
$email = (new TemplatedEmail())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Article')
->htmlTemplate('email/article.html.twig')
->context([
'title' => 'article',
'count' => 5,
'enabled' => true,
'createdAt' => new SymfonyComponentValidatorConstraintsDateTime(),
]);
$res = $email->getContext();
return new Response(print_r($res, true));
}
}
?>
Результат выполнения кода (сокращённо):
["title" => "article", "count" => 5, "enabled" => true, "createdAt" => DateTime object]
Смотрите также
-
метод
context,
который задаёт контекст для шаблона письма -
метод
htmlTemplate,
который задаёт HTML-шаблон письма -
класс
TemplatedEmail,
который представляет письмо на основе шаблона -
метод
getHtmlTemplate,
который возвращает HTML-шаблон письма