За последние 24 часа нас посетили 20934 программиста и 1016 роботов. Сейчас ищут 560 программистов ...

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

Тема в разделе "Yii", создана пользователем hanyll, 19 авг 2016.

Метки:
  1. hanyll

    hanyll Новичок

    С нами с:
    19 авг 2016
    Сообщения:
    2
    Симпатии:
    0
    Необходимо отправлять письма, с разным текстом, но в одном общем лейауте. В лейауте, в самом начале нужно писать приветствие пользователю, на подобии "Hello $user_name", что бы в каждом письме отображалось это приветствие. Как в yii2, в swiftmailer, при отправке письма, можно предавать параметры именно в layout?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  3. at0m1x

    at0m1x Активный пользователь

    С нами с:
    18 дек 2011
    Сообщения:
    31
    Симпатии:
    0
    Для того что бы передать параметр в лейаут, нужно сделать следующее:

    1. Передаем параметр:
    PHP:
    1. \Yii::$app->mailer->getView()->params['userName'] = 'User Name';
    2. В самом лейауте выводим этот параметр:
    PHP:
    1. <?= $this->params['userName'] ?>
    3. Очищаем переданные параметры:
    PHP:
    1. \Yii::$app->mailer->getView()->params['userName'] = null;
    Подробнее о других нюансах работы со Swiftmailer можно почитать тут: http://atoumus.github.io/yii2-swiftmailer.html.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Можно и проще. Вы же передаёте письмо в шаблон, а он вызывает лейаут. Значит, просто в шаблоне пишите:
    PHP:
    1. $this->params["name"] = $name;