@hermina.hauck
Для использования Twig в Yii2 для шаблонов писем, вам необходимо выполнить следующие шаги:
1
|
"twig/twig": "~2.0" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
'view' => [ 'class' => 'yiiwebView', 'renderers' => [ 'twig' => [ 'class' => 'yii wigViewRenderer', // Сообщите, где располагаются шаблоны 'options' => [ 'auto_reload' => true, 'cache' => false, 'strict_variables' => true, ], 'globals' => [ // определение глобальных переменных для всех шаблонов 'html' => 'yiihelpersHtml', ], 'uses' => ['yiiootstrap'], ], // ... ], ], |
1 2 3 4 5 6 7 |
{# Определение шаблона письма #} {% extends "layouts/html" %} {% block content %} <h1>Welcome {{ name }}!</h1> <p>Thank you for joining our site.</p> {% endblock %} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
use Yii; use yiiwebController; use yiihelpersHtml; class MailController extends Controller { public function actionWelcome() { $message = Yii::$app->mailer->compose(); $message->setTo('recipient@example.com') ->setFrom('sender@example.com') ->setSubject('Welcome to our site') ->setHtmlBody(Yii::$app->view->render('mail/welcome', ['name' => 'John Doe'])); $message->send(); } } |
Вы можете передать любые данные в шаблон, используя массив, передаваемый вторым аргументом в функцию render()
. Кроме того, вы можете использовать глобальные переменные, определенные в настройках Twig.
Теперь, когда вы вызываете метод send()
на экземпляре yiimailMessage
, Yii2 будет использовать Twig для обработки шаблона письма, созданного вами.