阅读(2839) (8)

Laravel 8 其他通知格式化选项

2021-07-06 09:24:40 更新

除了在通知类中定义多行文本之外,你还可以使用 view 方法来指定一个用于渲染通知邮件的自定义模板:

 /**
  * 获取通知的邮件内容
  *
  * @param  mixed  $notifiable
  * @return \Illuminate\Notifications\Messages\MailMessage
  */
 public function toMail($notifiable)
 {
     return (new MailMessage)->view(
         'emails.name', ['invoice' => $this->invoice]
     );
 } 

你可以通过将视图名称作为数组第二个元素传给 MailMessageview 方法,以此为邮件消息指定纯文本视图:

 /**
  * 获取通知的邮件内容
  *
  * @param  mixed  $notifiable
  * @return \Illuminate\Notifications\Messages\MailMessage
  */
 public function toMail($notifiable)
 {
     return (new MailMessage)->view(
         ['emails.name.html', 'emails.name.plain'],
         ['invoice' => $this->invoice]
     );
 } 

此外,你可以从 toMail 方法中返回一个完整的 可邮寄对象

use App\Mail\InvoicePaid as Mailable;

/**
 * 获取通知的邮件内容
 *
 * @param  mixed  $notifiable
 * @return Mailable
 */
public function toMail($notifiable)
{
    return (new Mailable($this->invoice))->to($notifiable->email);
}