Laravel 5.5 - Каналы уведомлений с разными именами очередей?
В прослушивателе событий я отправляю уведомление владельцу собаки следующим образом:
$event->dogowner->notify(new DogWasWalkedNotification);
Проблема в том, что есть два канала database
/mail
установите в уведомлении ниже, они оба будут добавлены в виде заданий в очереди в очередь уведомлений, установленную в конструкторе. Вместо этого я хочу добавить почтовый канал ниже к emails
очередь вместо стандартной по умолчанию, установленной в конструкторе уведомлений.
Любая идея, как получить следующее уведомление только добавить почтовый канал MailMessage
для emails
очередь без добавления database
канал в очередь вообще? (даже если это означает удаление конструктора onQueue
)
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use App\Events\DogWasWalked;
class DogWasWalkedNotification extends Notification implements ShouldQueue
{
use Queueable;
protected $event;
public function __construct(DogWasWalked $event) {
$this->event = $event;
// This is what creates 2 queued jobs (one per channel)
$this->onQueue('notifications');
}
public function via($notifiable) {
return ['database', 'mail'];
}
public function toArray($notifiable) {
return [
'activity' => 'Dog was walked!',
'walkername' => $this->event->walkername
];
}
public function toMail($notifiable) {
// How to set the queue name for
// this channel to 'emails'
return (new MailMessage)
->line('Dog was walked!');
}
}