在Laravel Notification Email中添加粗体和换行符

时间:2018-09-05 14:54:35

标签: php html laravel notifications

Laravel 5.6

我正在尝试通过电子邮件发送Laravel通知。我想使某些文本变为粗体,并插入换行符,而没有line($text)方法带来的全新段落。所以我已经在通知类中尝试过了。我还尝试过使用\n字符串作为新行。

return (new MailMessage)
->subject('Booking Confirmed - Please Read')
->greeting('Hello ' . $this->booking->user->first_name . ',')
->line('Thank you for booking. Here are your booking details:')
->line($this->booking->provider->providerType->name . '<br>' .
    $date . '<br>' .
    $this->booking->start_at . '<br>' .
    $this->booking->address_1 . '<br>' .
    $this->booking->address_2 . '<br>' .
    $this->booking->address_3 . '<br>' .
    $this->booking->city . '<br>' .
    $this->booking->postcode . '<br>' .
    '£' . $this->booking->price
)
->line('<strong>Need to cancel?</strong><br>' .
    'Don\'t forget to contact the provider on the details above if you need to cancel or reschedule. 
    They won\'t mind, as long as you tell them.'
)
->line('<strong>Payment</strong><br>' .
    'Pay the Service provider direct as you normally would. This keeps things simple and costs down.'
)
->line('<strong>FAQ\'s</strong><br>' .
    'Please click here for more information'
)
->line('<strong>Don\'t forget to leave feedback after!</strong><br>' .
    'Help build your relationship with your Service Providers by leaving feedback'
)
->line('We hope to see you again soon!')

无论是否通过php artisan vendor:publish --tag=laravel-mail命令发布刀片模板,我都尝试过,然后将{{$line}}更新为{!! $line !!}}并不高兴。无法弄清楚。

将这样的打印件放入邮件陷阱 enter image description here

4 个答案:

答案 0 :(得分:7)

由于问题太老了,也许您已经完成了工作。但我想分享一种在Laravel邮件模板上编写HTML标签的简便方法。

首先,您需要导入 use Illuminate\Support\HtmlString;

->line(new HtmlString('Last date: <strong>' . $this->due_date . '</strong>'))

通过HtmlString类,您可以在邮件正文上编写HTML标签。 对于正在寻找这种解决方案的人会有所帮助。

谢谢。

答案 1 :(得分:1)

我想出了这一点,以防万一其他人像我一样愚蠢。
我认为这有两个原因可以解决。 @DouwedeHaan建议我在使用\n时使用双引号而不是单引号,虽然执行不多,但结合了我认为可以解决问题的下一部分。

呈现html的刀片模板位于markdown中。我还没弄清楚。它的布局是特定的,在发布它后,我删除了一些行,并使用缩进格式格式化了文件,从而意外破坏了它。

我删除了文件,重新发布了模板,将{{$line}}的所有实例更新为{!! $line !!},以确保保留文件的其余部分,更新了我的通知以使用双引号并停留在{ {1}}和<br/>标签,现在可以正常使用了。

enter image description here

答案 2 :(得分:0)

使用带单引号的普通换行符

'This will create a
new line'

或在双引号中使用\n

"This will also create a \n new line"

More info here

答案 3 :(得分:-3)

您确实需要更新通知视图,因此您处于正确的轨道上。

基本上在发布通知包的资源之后,这样做:

$ php artisan vendor:publish --tag = laravel-notifications

您需要做的就是打开资源/视图/供应商/通知/email.blade.php,并将{{$ line}}的出现替换为{!! $ line !!}。

这只是告诉Blade不要转义标签。

希望这会有所帮助!