Я хочу переопределить уведомления по умолчанию для сброса пароля и проверки электронной почты в 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
, и я не понимаю, почему это происходит, и не работает должным образом.
Поиск проблемы Я даже нашел это ( вопрос ), где об этом упоминают факеметы, которые должны работать.