Метод textTemplate класса TemplatedEmail
Метод textTemplate класса TemplatedEmail
задаёт путь к текстовому шаблону Twig, который
будет использован для генерации тела письма.
Первым параметром передаётся имя шаблона,
вторым - массив параметров, доступных внутри
этого шаблона. Метод возвращает сам объект
письма, что позволяет выстраивать цепочку
вызовов.
Синтаксис
public function textTemplate(string $template, array $context = []): static
Пример
Давайте создадим письмо и зададим ему текстовый
шаблон 'email/welcome.txt.twig':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\TemplatedEmail;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/email', name: 'article_email')]
public function index(MailerInterface $mailer): Response
{
$email = (new TemplatedEmail())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Welcome')
->textTemplate('email/welcome.txt.twig');
$mailer->send($email);
return new Response('sent');
}
}
?>
Файл шаблона может выглядеть так:
Hello, {{ name }}!
Пример
Давайте передадим параметры в шаблон через второй аргумент метода:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\TemplatedEmail;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/email', name: 'article_email')]
public function index(MailerInterface $mailer): Response
{
$email = (new TemplatedEmail())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Welcome')
->textTemplate('email/welcome.txt.twig', [
'name' => 'user',
'text' => 'abcde',
]);
$mailer->send($email);
return new Response('sent');
}
}
?>
Файл шаблона может выглядеть так:
Hello, {{ name }}!
{{ text }}
Результат выполнения кода:
"Hello, user!
abcde"
Смотрите также
-
класс
TemplatedEmail,
который представляет письмо на основе шаблонов -
метод
htmlTemplate,
который задаёт HTML-шаблон письма -
метод
context,
который задаёт параметры шаблона письма -
метод
text,
который задаёт текстовое тело письма