Laravel邮件通知

时间:2017-02-07 10:45:52

标签: php laravel notifications laravel-5.3 laravel-5.4

使用Laravel 5.3,我可以在Notification

中定义收件人
// In a class extending Illuminate\Notifications\Notification :

public function toMail($notifiable)
{
    return (new MailMessage)->line('hello')->to('me@example.com');
}

自Laravel 5.4(relevant commit)以来,我无法使用to。如何更新我的代码?我需要向未绑定到用户或对象的电子邮件发送通知。如何“破解”这些缺失的功能?

2 个答案:

答案 0 :(得分:1)

使用电子邮件属性创建最小类:

class MyNotifiable
{
    use \Illuminate\Notifications\Notifiable;

    public $email;

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

然后在你的小班上打电话给notify

(new MyNotifiable('me@example.org'))->notify(new MyNotification);

它有效。

答案 1 :(得分:0)

您是否查看了同一文件的主分支?

它已被还原:

  

https://github.com/laravel/framework/blob/master/src/Illuminate/Notifications/Channels/MailChannel.php

此外,文档还有to()

use App\Mail\InvoicePaid as Mailable;

/**
 * Get the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return Mailable
 */
public function toMail($notifiable)
{
    return (new Mailable($this->invoice))->to($this->user->email);
}

希望它对你有所帮助。