У меня есть следующая ошибка:
Undefined свойство: Illuminate\Notifications\Events\NotificationSent:: $user в /var/www/app/app/Listeners/NoticationListener.php:31
Ошибка здесь:
<?php
namespace App\Listeners;
use Illuminate\Notifications\Events\NotificationSent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class NoticationListener implements ShouldQueue
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param NotificationSent $event
* @return void
*/
public function handle(NotificationSent $event)
{
$notification = $event->notifiable;
$addressee = $notification; //error here
$address = $notification;
$type = "Notification";
dispatch(new SendEmail($type,$addressee,$address));
}
}
Я не понимаю этого свойства undefined, особенно в этой строке. Как я могу dd()
отсюда? Я попытался зарегистрировать $event
, но я не смог его записать, только получил эту ошибку.
Мои уведомления очень хорошо работают в приложении, я просто хочу, чтобы их сопровождало электронное письмо, поэтому у меня есть этот event-listener/job.
Спасибо.
ИЗМЕНИТЬ
Код репозитория, отправляющий уведомление, находится ниже:
public function notify($asset)
{
$users = User::where("id","!=",Auth::user()->id)->get();
Notification::send($users, new NewAsset($asset));
}
Это расширение класса Notification
ниже:
class NewAsset extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
protected $asset;
public function __construct($asset)
{
$this->asset = $asset;
}
/**
* Get the notification delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['database'];
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
'asset_id' => $this->asset->id
];
}
}
РЕДАКТИРОВАТЬ 2
Если кто-то может посоветовать, как сделать некоторую проверку ошибок на этом этапе, это может быть полезно в будущем. Поскольку код является асинхронным на сервере, он не возвращает данные клиенту, и когда я пытаюсь получить его на Log
, он, похоже, не делает этого, прежде чем он попадает в ошибку.
Как я могу отлаживать этот сценарий?
Пожалуйста, помогите, спасибо.