@hanyll

Yii2 Swiftmailer — как передать параметр в layout письма?

Необходимо отправлять письма, с разным текстом, но в одном общем лейауте. В лейауте, в самом начале нужно писать приветствие пользователю, на подобии "Hello <?= $user_name ?>", что бы в каждом письме отображалось это приветствие. Как в yii2, в swiftmailer, при отправке письма, можно предавать параметры именно в layout?
  • Вопрос задан
  • 407 просмотров
Пригласить эксперта
Ответы на вопрос 2
at0m1x
@at0m1x
Для того что бы передать параметр в лейаут, нужно сделать следующее:
  1. Передаем параметр:
    \Yii::$app->mailer->getView()->params['userName'] = 'User Name';

  2. В самом лейауте выводим этот параметр: <?= $this->params['userName'] ?>
  3. Очищаем переданные параметры:
    \Yii::$app->mailer->getView()->params['userName'] = null;



Подробнее о других нюансах работы со Swiftmailer можно почитать тут.
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега Yii
Например так
<?= Yii::t('app', 'HELLO {username}', ['username' => $user->username]); ?>

Это кусок кода из шаблона письма
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы