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

问题描述 投票:8回答:2

我试图在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循环中时,Markdown没有得到处理。但它被放置在@foreach循环外面时被处理。

任何帮助都感激不尽。谢谢。

php email foreach markdown laravel-5.4
2个回答
3
投票

laravel documentation所述:

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

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

<h4>Article</h4>

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电子邮件时,请勿使用多余的缩进。 Markdown解析器将缩进内容呈现为代码块。

© www.soinside.com 2019 - 2024. All rights reserved.