Laravel уведомление по электронной почте фасадная очередь нескольких пользователей

Вот мой код, работающий для отправки уведомлений по электронной почте нескольким пользователям

$users = User::whereIn('id', $userIds)->get();
\Notification::send($users, new DealPublished($deal));

Это работает, но если я хочу отложить это так

$users = User::whereIn('id', $userIds)->get();

$when = Carbon::now()->addSecond();

\Notification::send($users, new DealPublished($deal))->when($when);

Ошибка

FatalThrowableError in DealController.php line 226:
Call to a member function when() on null

Как я могу отправить уведомление по электронной почте нескольким пользователям, используя очередь и Notification Facade?

Спасибо за помощь

3

Решение

Попробуйте это так:


\Notification::send($users, (new DealPublished($deal))->delay($when));

8

Другие решения

Я думаю, вы должны попробовать это:

$when = Carbon::now()->addSecond(10);

\Notification::send($users, new DealPublished($deal))->later($when);

ИЛИ ЖЕ

\Notification::send($users, new DealPublished($deal))->when($when);

Надеюсь, эта работа для вас!

0

С циклом foreach

$when = Carbon::now()->addSecond();
foreach($users as $user){
$user->notify((new DealPublished($deal))->delay($when));
}

Это работает, но если есть более 1000 пользователей для уведомления, я не уверен насчет времени выполнения: D

0
По вопросам рекламы [email protected]