Laravel-在降价邮件中使用@foreach

时间:2018-01-31 08:32:09

标签: php email foreach markdown laravel-5.4

我正在尝试在markdown模板中使用@foreach循环来发送邮件。

在@foreach中使用HTML标记时,它无法正确呈现

@component('mail::message')

These are the latest contents in our website

@foreach($results as $type => $result)
   <h4>{{ $result['name'] }}</h4>
@endforeach

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

在收到的邮件中,<h4>标记将显示为

<h4>Article</h4>

当Markdown置于@foreach循环内时,不会对其进行处理。但是当它放在@foreach循环之外时会被处理。

任何帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:3)

laravel documentation中所述:

  

撰写Markdown电子邮件时,请勿使用多余的缩进。降价   解析器将缩进内容呈现为代码块。

问题不在于放置在@foreach内的HTML标记,但缩进使解析器呈现如下(我现在使用markdown,<h4>之前有4个空格):

<h4>Article</h4>

答案 1 :(得分:0)

很好的问题,使用标记而不是html的示例也是如此。 例如:

@component('mail::message')
# Data received:

@foreach($fields as $name => $value)
    **{{ $name }}: ** {{ $value }}

@endforeach

@endcomponent

可能导致:

<h1>Data received:</h1>
<pre><code>**voornaam: ** piet
**familienaam: ** hein</code></pre>

虽然缩进2个空格而不是4个

@component('mail::message')
# Data received:

@foreach($fields as $name => $value)
  **{{ $name }}: ** {{ $value }}

@endforeach

@endcomponent

相同的输入结果:

<h1>Data received:</h1>
<p><strong>voornaam: </strong> piet</p>
<p><strong>familienaam: </strong> hein</p>

由@Ben指向https://laravel.com/docs/5.8/mail#writing-markdown-messages

进行了预期和解释
  

编写Markdown电子邮件时,请勿使用多余的缩进。降价促销   解析器会将缩进的内容呈现为代码块。