Отправка уведомления ResetPassword с использованием очереди в Laravel 6 - ошибка свойства 'view' - PullRequest
0 голосов
/ 03 мая 2020

Я хочу переопределить уведомления по умолчанию для сброса пароля и проверки электронной почты в laravel 6, чтобы использовать очередь максимально простым способом. Поэтому я добавляю методы в User. php модель:

use App\Notifications\ResetPasswordNotification;
use App\Notifications\EmailVerificationNotification;
...
public function sendPasswordResetNotification($token)
{
    $this->notify(new ResetPasswordNotification($token));
}

public function sendEmailVerificationNotification()
{
    $this->notify(new EmailVerificationNotification);
}

и создаю новые уведомления

ResetPasswordNotification

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Auth\Notifications\ResetPassword;

class ResetPasswordNotification extends ResetPassword implements ShouldQueue
{
    use Queueable;

}

EmailVerificationNotification

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Auth\Notifications\VerifyEmail;

class EmailVerificationNotification extends VerifyEmail implements ShouldQueue
{
    use Queueable;

}

Теперь проверка электронной почты отправляется в очередь, но в URL-адресе создается имя хоста http://localhost/ ... В уведомлении по умолчанию оно генерируется правильно, аналогично имени домена в браузере (не изменяя его в файле .env).

Вторая проблема связана с уведомлением о сбросе пароля, которое вообще не отправляется. Это дает мне ошибку

Trying to get property 'view' of non-object at vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php:92

, и я не понимаю, почему это происходит, и не работает должным образом.

Поиск проблемы Я даже нашел это ( вопрос ), где об этом упоминают факеметы, которые должны работать.

1 Ответ

0 голосов
/ 05 мая 2020

Я понял это. Во-первых, когда я использую очередь, в моем случае я запускаю кустарную очередь: работаю с демоном супервизора, задания выполняются под консолью, поэтому нет доступного var SERVER ['HTTP_HOST'], что означает, что это значение должно быть прочитано из .env. файл. Во-вторых, когда вы меняете методы переопределения кода, как я, вы должны перезапустить эту очередь: работать, чтобы перечитать изменения. Так что это были мои главные проблемы.

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