2017-01-16 16 views
1

Вот мой код работают для отправки уведомлений по электронной почте несколько пользователей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 

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

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

+0

Попробуйте заменить '-> when' с помощью 'delay' и повторите попытку. – EddyTheDove

+0

FatalThrowableError в строке DealController.php 226: Вызов функции-функции-члена() по нуле – user2916349

+0

Если вы хотите просто оповестить о очереди, добавьте интерфейс 'ShouldQueue' и черту' Queuable', как указано здесь https://laravel.com/ Docs/5,3/уведомлений # очереди-уведомления. Однако, похоже, вы пытаетесь планировать/откладывать уведомление за определенное время (1 секунду). Ссылаясь на документ, 'delay' применяется только к' notify', который, к сожалению, не может быть вызван с массивом, но для пользователя. Может быть, цикл for? Просто предлагаю. – EddyTheDove

ответ

2

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

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

0

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

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

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

ИЛИ

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

Надежда эта работа для Вас!

+0

Привет, такой же ошибка. – user2916349

0

С петлей Еогеасп

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^