У меня есть уведомление базы данных, которое работает нормально на локальном компьютере. Он отправляет электронные письма, а также уведомление базы данных. Но когда я загрузил его в PRODUCTION, электронная почта (toEmail) отправляет электронную почту нормально, но уведомление базы данных (toDatabase) не работает. Я использовал Laraval Forge для развертывания приложения. Я не думаю, что это проблема с работой очереди, потому что электронная почта работает нормально.
class DBMailNewPaymentAddedgNotification extends Notification implements ShouldQueue
{
use Queueable;
public $payment;
public function __construct($payment)
{
$this->payment = $payment;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return explode(',' ,$notifiable->notification_preference);
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Nouvelle action sur le système.')
->line('Vous recevez cet e-mail car il y a une nouvelle notification dans le système')
->action('Veuillez vous connecter', url('/login'));
}
public function toDatabase()
{
return [
'title' => 'Nouveau paiement soumis',
'category' => 'finance',
'type' => 'added',
'icon' => 'cash',
'note_title' => 'Paiement '.$this->payment->ref_number.' soumis ',
'note_desc' => 'par l\'utilisateur '.$this->payment->updatedBy->nom.' '.$this->payment->updatedBy->nom,
'added_by_user_id' => $this->payment->updatedBy->id,
'item_id' => $this->payment->id
];
}
.env QUEUE_CONNECTION=database // Is set to database in local as well as in production
И вот как я вызываю класс уведомлений в контроллере
$users = User::wherePermissionIs('journaux-actions-paiement')->get();
$when = now()->addMinutes(2);
$users->each->notify((new DBMailNewPaymentAddedgNotification($payment))->delay($when));