Laravel 通知降价 - 未定义的变量

Laravel Notification Markdown - Undefined variable

我在尝试将数据传递到降价邮件时收到以下错误

Undefined variable: claim

我有以下通知代码

class ChequeDiscrepancy extends Notification
{
    use Queueable;

    public $data;

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

    public function via($notifiable)
    {
        return ['mail'];
    }


    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('Subject')
            ->markdown('emails.admin.banking.cheque_discrepancy');
    }

    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

在我的降价模板中,我有

@component('mail::message')
# Cheque No: {{$data->id}}
@endcomponent

根据 https://laravel.com/docs/8.x/mail#view-data 我应该能够通过 public 属性或通过 with 方法传递数据。这适用于普通邮件,但似乎不适用于通知。

我是不是做错了什么?

谢谢

Notifications 和 Mailable 之间传递的数据不同 类。 在通知中你需要明确地传递数据,像这样

    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('Subject')
            ->markdown('emails.admin.banking.cheque_discrepancy', ['data'=>$this->data]);
    }

您可以在这里进一步阅读:Laravel Notifications