如何在降价通知

时间:2017-10-06 02:01:58

标签: php laravel laravel-5.4

我使用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>。什么都行不通。

3 个答案:

答案 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!