Переменные не отображаются при передаче шаблона из базы данных - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть шаблон базы данных для электронной почты с переменными и т. Д. Когда я передаю этот шаблон в моем представлении, переменные базы данных не отображаются и отображаются {{$ child_fullname}}, {{$ special_fullname}} и т. Д. Вместособственное имя.

Вот моя функция сборки Mail:

public function build()
{
    return $this->subject('Pranešimas apie sėkmingą registraciją')
                ->view('email-template')
                ->with([
                    'body'                => EmailTemplate::find(1)->text,
                    'child_fullname'      => $this->child->name . ' ' . $this->child->surname,
                    'specialist_fullname' => $this->card->specialist->name,
                    'date_time'           => $this->visits->workSchedule->work_date . 
                                             ' ' . $this->visits->workSchedule->work_time
                ]);
}

Шаблон Blade:

<!doctype html>
<html>
    <head>
        <meta name="viewport" content="width=device-width">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    {!! $body !!}
</html>

Результат: enter image description here

Заранее благодарен за помощь!

PS С помощью этого вы можете отправить электронное письмо.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Попробуйте Blade::compileString()

{!! Blade::compileString($body) !!}
0 голосов
/ 27 ноября 2018

Это не рендеринг, потому что body - это переменная, передаваемая в представление.

Сначала вы должны отрендерить body, а затем включить его в свою электронную почту.

Одно решениеэто использовать https://github.com/TerrePorter/StringBladeCompiler, это поможет вам начать.

Псевдокод для него:

public function build()
{
    return $this->subject('Pranešimas apie sėkmingą registraciją')
        ->view('email-template')->with(
            [
                'body'                  => renderFromString(EmailTemplate::find(1)->text, 
                [
                    'child_fullname'        => $this->child->name . ' ' . $this->child->surname,
                    'specialist_fullname'   => $this->card->specialist->name,
                    'date_time'             => $this->visits->workSchedule->work_date . ' ' . $this->visits->workSchedule->work_time
            ])
        );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...