Laravel 5.7 - Доступный Уведомляемый внутренний вид шаблона - PullRequest
0 голосов
/ 26 декабря 2018

Какой правильный способ доступа к $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;
}

Внутри моего клинкаtemplate:

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 голосов
/ 26 декабря 2018

Да, вам нужно отправить переменные для использования в представлении

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

Когда-нибудь вы сможете использовать помощник compact (), но только когда вы называете переменные (не $ this->)

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

пожалуйста, попробуйте это и дайте мне знать, как это работает :)

...