Получение ошибки routeNotificationFor () в уведомлениях laravel - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь отправить электронное письмо членам моего приложения и получаю следующую ошибку:

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

    }

}

1 Ответ

0 голосов
/ 10 ноября 2018

Эта проблема была решена. В коде нет ошибок, я использовал Supervisor для управления очередями и забыл перезапустить его на рабочем сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...