Laravel 5.7-内部视图模板中的可通知访问

时间:2018-12-26 17:42:15

标签: php laravel notifications laravel-5.7

在我的视图模板中访问$notifiable的正确方法是什么?

我知道$notifiable是用户,但是当我有以下内容时

 public $abc;

 public function __construct($abc)
{
    $this->abc = $abc;
}


public function toMail($notifiable)
{

    $mailMessage = (new MailMessage)
        ->from('xyz@xyz.com', 'xyz company')
        ->subject('xyz')
        ->markdown('emails.news-alert');


    return $mailMessage;
}

在我的刀片模板内:

Hello {{ $notifiable->first_name }}

{{ $abc }}

以上内容引发错误,因为它无法识别$notifiable

但是,如果我按以下方式进行传递,那么它将起作用:

$mailMessage = (new MailMessage)
        ->from('xyz@xyz.com', 'xyz company')
        ->subject('xyz')
        ->markdown('emails.news-alert', ['notifiable' => $notifiable);

$notifiable不是公共财产-我认为视图默认情况下可以使用它,而无需通过它?

1 个答案:

答案 0 :(得分:0)

是的,您需要发送变量以在视图中使用

$mail->markdown(
   'emails.news-alert', [
      'notificable' => $notificable,
      'abc' => $this->abc
   ]
);

有时候,您可以使用compact()帮助器,但前提是您已经命名了变量(不是$ this->)

$abc = $this->abc;
$mail->markdown('emails.news-alert', compact(['notificable','abc']));

请尝试一下,让我知道它如何工作:)