代码之家  ›  专栏  ›  技术社区  ›  adam78

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

  •  1
  • adam78  · 技术社区  · 7 年前

    正确的访问方式是什么 $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 }}
    

    上面的语句抛出一个错误,因为它无法识别 $应呈报

    但如果我按如下方式传递它,那么它就起作用了:

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

    $应呈报 不是公共属性-我以为它可以作为默认值供视图使用,而不需要传递它?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Manuel Eduardo Romero    7 年前

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

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

    有时可以使用compact()helper,但只有在指定了变量(而不是$this->)时才可以使用

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