Laravel 通知 toArray() 未将数据保存到通知 table

Laravel notification toArray() not saving data to notifications table

我无法使数据库通知选项起作用。没有信息保存到数据库中,没有错误,Laravel Telescope 上也没有任何显示。

这是我的通知代码:

<?php

namespace App\Notifications;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class LoginNotification extends Notification implements ShouldQueue
{
    use Queueable;

    /**
     * The user instance.
     *
     * @var \App\Models\User
     */
    public $user;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail', 'database'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->greeting('Hello ' .$this->user->first_name.',')
            ->line('There has been a login event on your account.')
            ->line('If this was you, no further action is required.')
            ->line('If not, please reset your password using the button below and consider enabling two-factor authentication on your account')
            ->action('Reset Password', url('/forgot-password'));
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            'user' => $this->user->id,
            'ip' => session('ip_address'),
        ];
    }
}

电子邮件已发送,但没有数据保存到通知中 table。并且只有 'mail' 被列为频道,'database' 尽管存在但没有。

我不知道问题出在哪里。

我通过将我的队列连接更改为 'sync' 来让它工作。所以问题是因为我的队列连接以前是 'database'。我正在使用这个和 运行 一个队列工作者。所以我的问题应该是当队列连接设置为数据库时如何让 toArray 方法工作。

更新: 这里没有问题,我需要做的就是在我的代码更改后停止并重新启动队列工作程序。