Я пытаюсь отправить явное сообщение через Email, только используя класс уведомлений, в котором он настроен как для ['mail', 'database'].
Notification::route('mail', $shopadmin->email)->notify(new ShopadminCreated($model));
Но он все равно переходит в метод toArray() и генерирует ошибку.
Причина в том, что я использую тот же класс для обновления по электронной почте, но на этот раз не нужно создавать запись в базе данных.






Solution:
Наткнувшись на Документацию об уведомлении. Я попробовал этот блок кода и реализовал его с модификацией ниже:
ShopadminCreated.php:
...
public function via($notifiable)
{
return $notifiable->prefers_email ? ['mail'] : ['mail', 'database'];
//return ['mail', 'database'];
}
...
Контроллер:
$data = $notification->data; // Array fetched from database
$model = Admin::hydrate([$data])[0];
$model->setAttribute('prefers_email', true);
Notification::send($shopadmin, new ShopadminCreated($model));
Спасибо! Это мне очень помогло! В настоящее время я использую этот подход, чтобы определить, нужно ли нам отправлять уведомление о базе данных или по почте:
return $notifiable instanceof User ? ['database'] : ['mail'];.