我使用Laravel通知系统在用户注册时发送欢迎电子邮件。一切都很好,除了我不能为我的生活找出如何在问候语中插入换行符。
这是我的代码:
namespace App\Notifications\Auth;
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;
class UserRegistered extends Notification
{
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Welcome to website!')
->greeting('Welcome '. $notifiable->name .'!')
->line('## Sub heading line')
->line('Paragraph line')
->markdown('mail.welcome');
}
}
我想在欢迎和名字之间暂停->greeting('Welcome '. $notifiable->name .'!')
。谁知道我怎么做到这一点?我已经尝试过双倍空间,如降价文档所述。我尝试过使用nl2br()
。我试过了\ n。我试过了<br>
。什么都行不通。
答案 0 :(得分:0)
它可能看起来很糟糕,但我认为这可行:
->greeting("Welcome
". $notifiable->name ."!")
应该保留换行符,不幸的是我现在无法测试它
编辑:另一种选择是使用不同的greeting
电话:
return (new MailMessage)
->subject('Welcome to website!')
->greeting('Welcome')
->greeting($notifiable->name .'!')
->line('## Sub heading line')
->line('Paragraph line')
->markdown('mail.welcome');
答案 1 :(得分:0)
让它发挥作用。事实证明,由于Laravel在使用<!--TEXT BLOCK-->
<Style x:Key="TextBlock_Generic">
<Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
<Setter Property="TextBlock.HorizontalAlignment" Value="Center"/>
<Setter Property="TextBlock.Padding" Value="0"/>
<Setter Property="TextBlock.Margin" Value="0"/>
<Setter Property="TextBlock.FontSize" Value="14" />
</Style>
时逃脱了HTML,因此问题就出现了。您必须使用{{ }}
:Using double curly brace in Laravel Collective
对于那些感兴趣的人,我的问候语现在是{!! !!}
并在我的降价模板中
->greeting('Welcome<br>'. $notifiable->name .'!')
答案 2 :(得分:0)
首先,请确保在邮件视图中将字符串呈现为HTML:
{!! $greeting !!}
如answer above中所述,这使得可以在<br>
内使用->greeting()
。
尽管如此,最好使用nl2br()
。这会将\n
呈现为HTML邮件和纯文本邮件中的新行。 (否则<br>
不会在纯文本邮件中呈现!)
注意:nl2br()
仅适用于双引号而不是单引号的字符串!
像这样在通知中使用它:
public function toMail($notifiable)
{
$name = $notifiable->name;
return (new MailMessage)
->subject('Welcome to website!')
->greeting(nl2br("Welcome\n$name!"))
->markdown('mail.welcome');
}
输出为HTML:
<p>Welcome<br>
Username!</p>
以纯文本格式输出:
Welcome
Username!