2017-02-07 14 views
0

С Laravel 5.3, я могу определить получателя в Notification:Laravel оповещение по электронной почте

// In a class extending Illuminate\Notifications\Notification : 

public function toMail($notifiable) 
{ 
    return (new MailMessage)->line('hello')->to('[email protected]'); 
} 

С Laravel 5.4 (relevant commit), я не могу использовать to. Как я могу обновить свой код? Мне нужно отправить уведомление на электронное письмо, которое не связано ни с пользователем, ни с объектом. Как «взломать» эти недостающие функции?

+0

объект, который вы отправляете, должен быть почтовым return new Mailable ($ this-> invoice) -> to ([email protected] '); –

ответ

1

Создать минимальный класс с свойством электронной почты:

class MyNotifiable 
{ 
    use \Illuminate\Notifications\Notifiable; 

    public $email; 

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

Затем вызовите notify на свой минимальный класс:

(new MyNotifiable('[email protected]'))->notify(new MyNotification); 

И это работает.

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); 
} 

Надеется, что это помогает.

+0

Спасибо. Речь идет о 'MailMessage', а не' Mailable'. 'to()' все еще отсутствует в https://github.com/laravel/framework/blob/master/src/Illuminate/Notifications/Messages/MailMessage.php –

+0

Надеюсь, вы ищете 'replyTo()' It находится здесь: https://github.com/laravel/framework/blob/master/src/Illuminate/Notifications/Messages/MailMessage.php#L118 – PaladiN