如何将 markdown 文本传递给 Laravel 中的 markdown blade?

How to pass markdown text to markdown blade in Laravel?

我需要在 Laravel 中发送 markdown e-mail 但是,此电子邮件的文本必须是可编辑的。当我将 $body 传递给相关视图时,它会这样显示:

$body = '''
# Introduction
hi {{ $username }} 
The body of your {{ $family }}.

@component('mail::button', ['url' => ''])
Button Text
@endcomponent
'''

在blade的相关视图中:

@component('mail::message')

    {{ $body }}

Thanks,<br>
{{ config('app.name') }}
@endcomponent

这是输出:

有谁知道为什么会这样?

不是将其作为字符串传递,而是将整个主体放在您已有的视图中 blade,并包含上述所有变量,如下所示:

  @component('mail::message')
    
       hi {{ $username }} 
       The body of your {{ $family }}.

       @component('mail::button', ['url' => ''])
          Button Text
       @endcomponent
    
       Thanks,<br>
       {{ config('app.name') }}
    @endcomponent

然后,在发送邮件时,只需将您需要的所有变量传递给该视图即可。由于我不确定您是如何发送电子邮件的,这里是使用 Mailable class:

的示例
Mail::to('email_address')->send(new MailableClass($username, $family));

那么,您的 Mailable class 将如下所示:

public function __construct($username, $family)
    {
        $this->username = $username;
        $this->family = $family;
    }

    
    public function build()
    {
        $data['username'] = $this->username;
        $data['family'] = $this->family;

        return $this
            ->view('your_blade', $data)
            ->subject('Subject');
    }

然后,您的变量将显示在给定视图中。

只需将其更改为查看 blade:

{!! $body !!}