Я пытаюсь отправить электронное письмо членам моего приложения и получаю следующую ошибку:
production.ERROR: вызов неопределенного метода
Осветить \ Database \ Query \ Builder :: routeNotificationFor ()
{"исключение": "[объект] (BadMethodCallException (код: 0): вызов
неопределенный метод
Осветить \ База данных \ Query \ Builder :: routeNotificationFor () в
/var/www/vhosts/.../laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2483)
У меня есть модель членов с чертой Notifiable
, и странная проблема заключается в том, что на моей локальной машине доставляются электронные письма ... Проблема на производстве ...
Есть идеи?
Уведомления запускаются с:
Notification::send($members_to_notify, new CommMessage($communication));
И CommMessage
класс:
CommMessage.php
namespace App\Notifications\Communications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use App\Mail\Communications\Message as Mailable;
class CommMessage extends Notification implements ShouldQueue
{
use Queueable;
private $communication;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($communication)
{
$this->communication = $communication;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return Mailable
*/
public function toMail($notifiable)
{
return (new Mailable($this->communication))->to($notifiable->email);
}
}
Почтовый Message
класс:
message.php
namespace App\Mail\Communications;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class Message extends Mailable
{
use Queueable, SerializesModels;
/**
* The appointment instance.
*
* @var Appointment
*/
public $communication;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($communication)
{
$this->communication = $communication;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->replyTo($this->communication->school->email)
->markdown('emails.communications.message');
$this->subject($this->communication->title);
$this->withSwiftMessage(function ($message) {
$message->getHeaders()
->addTextHeader('X-Mailgun-Variables', json_encode([
'model_id' => $this->communication->id,
'model' => get_class($this->communication),
'email_type' => 11 //Communication message (EmailLogType)
]));
});
}
}