РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
781 of 1361 menu

Метод htmlTemplate класса TemplatedEmail

Метод htmlTemplate класса TemplatedEmail задаёт Twig-шаблон, который будет использован для генерации HTML-версии письма. Первым параметром передаётся путь к Twig-шаблону относительно каталога templates. Вторым необязательным параметром можно передать массив контекста с переменными для шаблона. Метод возвращает текущий объект письма, что позволяет строить цепочку вызовов.

Синтаксис

public function htmlTemplate(string $template, array $context = []): static

Пример

Давайте создадим письмо и зададим ему HTML-шаблон:

<?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; class MailController 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'); $mailer->send($email); return new Response('sent'); } } ?>

Теперь создадим сам Twig-шаблон:

<h1>Hello</h1> <p>This is an HTML email.</p>

Результат выполнения кода:

sent

Пример

Давайте передадим переменные в HTML-шаблон через второй параметр:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Mailer\MailerInterface; use Symfony\Component\Mime\TemplatedEmail; class MailController extends AbstractController { public function send(MailerInterface $mailer): Response { $email = (new TemplatedEmail()) ->from('sender@example.com') ->to('recipient@example.com') ->subject('Hello') ->htmlTemplate('email/user.html.twig', [ 'name' => 'abcde', ]); $mailer->send($email); return new Response('sent'); } } ?>

Содержимое Twig-шаблона:

<p>Hello, {{ name }}!</p>

Результат выполнения кода:

"<p>Hello, abcde!</p>"

Пример

Давайте используем метод context вместо второго параметра:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Mailer\MailerInterface; use Symfony\Component\Mime\TemplatedEmail; class MailController extends AbstractController { public function send(MailerInterface $mailer): Response { $email = (new TemplatedEmail()) ->from('sender@example.com') ->to('recipient@example.com') ->subject('Hello') ->htmlTemplate('email/user.html.twig') ->context([ 'name' => 'abcde', ]); $mailer->send($email); return new Response('sent'); } } ?>

Результат выполнения кода:

"<p>Hello, abcde!</p>"

Смотрите также

  • класс TemplatedEmail,
    который представляет письмо на основе Twig-шаблона
  • метод textTemplate,
    который задаёт Twig-шаблон для текстовой версии письма
  • метод context,
    который задаёт переменные для Twig-шаблона
  • метод getHtmlTemplate,
    который возвращает путь к HTML-шаблону письма
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить