Как передать данные сообщения в шаблон письма Lumen/laravel?
Вопреки сложившейся практике посылать всех читать многостраничные мануалы докладываю: перечитал их тьму, но так и не нашел внятного способа передать данные отправляемого письма в html шаблон. Пока что решил перекинув через сессию, но может есть более кошерный способ? Спасибо!
N, кода? Да, взял из доков mailconstructor, взял шаблон из доков и попробовал отправить. Кроме как шапки и футера Laravel ничего не отправилось. $template кидает в первозданном виде. А любые переменные шаблон есть отказывается кроме сессии
maiskiykot, да у меня глаза болят при виде таких вариантов) Я не понимаю какие трудности сделать по документации если с фреймворком знаком? Там все просто.
Создаешь класс php artisan make:mail MyMail
прописываешь в классе
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function build()
{
return $this->view('template');
}
Теперь в шаблоне будет доступна $message.
отправляешь письмо Mail::to($email)->send(new MyMail($message));
maiskiykot, собирать и зажигать ничего не надо. Делается только то, что я написал. Все публичные свойства класса MyMail, объявленные в конструкторе будут доступны в шаблоне. Буквальный пример как делать я привел
Этот майл класс объявлякт только $message. И еще меня смущает конструкция запроса Mail. В тех доках, где я ковырялся, для Люмена указано как у меня:
Mail::send($template, $request->all(), function($message) use ($toAddresses, $fromAddress, $name , $subject) {
maiskiykot, во-первых это не херня, а вполне нормальная дока, а во-вторых зачем тогда указали в тегах ларавел и не написали в вопросе, что нужно решение по шестому люмену?
maiskiykot,
Где здесь написано про шестой люмен? То что там тег это ничего не значит, в заголовке указан ларавел.
А по теме - вы в коде пишете не то, как указано в доке, теймлейт сам себя не заполнит. В доке показана отсылка объекта mailable и все примеры показаны в этом контексте, а вы шлете тупо контент шаблона письма
jazzus, Ну-ну. Меня просто забавляют такие комментарии. Мол, я нихера не знаю, но свои пять копеек непременно вставлю. Зачем мне ставить огромные пакеты ларавеля, если я его функционал даже на пятую часть не использую? Или только говнокодеры беспокоятся о компактности своего приложения? Гуру просто берут накатывают ларавель и сидят довольные - как у нас все по учебнику работает!
maiskiykot, если вы себя к гуру относите, то почему не написали свой шаблонизатор для контекта письма? Там одной-двух функций достаточно, даже класс не нужен. Как раз не по учебнику и не по документации - можно заткнуть за пояс зануд, указывающих на вашу неправоту(сарказм)
Daria Motorina, А кто сказал, что я гуру? Решение должно быть соизмеримо задаче. Если бы я на голом пыхе писал себе проект - я бы и 5 минут не потратил на эту фигню. Но ведь сообщество говорит, что на фреймворке круче, а на самом деле - сплошное болото. У всех кроме ссылок на маны ничего нет. А в манах тоже ничего нет. Теперь докладываю о своей задаче - есть простейшая форма обратной связи - три поля. Она кидает письма администрации сайта. Для люмена это настолько непосильная задача, что она даже не описана. Ставить ларавель? Плюс 20 пакетов примерно для решения задачки первоклассника? Городить костыли? Что-то я запутался. Где здесь правда (Брат 2)?
maiskiykot, тебе выше написали про Люмен. У них общий с Ларавел драйвер, настраивается одинаково. Генерируешь mail класс, передаешь данные в шаблон через with или публичные свойства. 5 минут на весь процесс.
maiskiykot, нет никакой проблемы в том, чтобы добавить пакеты к люмену, это не влияет на производительность для обычного сайта. Момент, когда узким местом станет количество абстракций во фреймворке, происходит при высоких нагрузках, да и то сначала другие средства применяют для оптимизации. Любой пакет фреймворка это повышение читаемости кода, фреймворки с плохой поддержкой просто не выживают. И абстракция обычно лучше чем голый процедурный код.
jazzus, Опять словеса. Я и пытаюсь передать данные в шаблон. Неужели не понятно, что человеку не понятно? Покажи как ты за 5 минут передашь - хорош уже умничать!