как отправить коллекцию или массив в фасад уведомлений - PullRequest
0 голосов
/ 09 июня 2019

У меня есть коллекция, например:

$users = 
collect([ (object) [ 'name' => 'user1', 'email' => 'user1@gmail.com' ], 
          (object) [ 'name' => 'user2', 'email' => 'user2@gmail.com' ] 
]);

Можете ли вы помочь мне понять, как отправить коллекцию на фасад уведомлений, чтобы отправить электронное письмо этим пользователям?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 09 июня 2019

Если вы спрашиваете, как отправить коллекцию, составленную из списка, а не из текущих пользователей, я думаю, вам нужно будет создать пользователя или человека (хотя бы временно), если вы хотите использовать фасад уведомлений, так как смотрит в базу данных для отправки. Из руководства:

Вы можете отправлять уведомления через панель уведомлений. Это полезно, в первую очередь, когда вам нужно отправить уведомление нескольким объектам, подлежащим уведомлению, например, группе пользователей. Для отправки уведомлений с использованием фасада передайте все уведомляемые объекты и экземпляр уведомления методу отправки.

Чтобы это работало, вам нужно use Notifiable на User модели или любой другой модели, которую вы выберете. Создайте новых пользователей в базе данных, а затем отправьте эту коллекцию на фасад. Если вы не хотите сохранять их в базе данных после того, как уведомление выходит, вы можете удалить их, но я не могу сказать по вашему вопросу, в чем проблема. Если у вас есть коллекция User объектов, вы можете вызвать фасад уведомлений для этой коллекции сохраненных пользователей:

Notification::send($users, new WhateverYourNotificationInstanceIsCalled($someNotification));

В качестве альтернативы, вы можете создать новую вещь типа «пригласить», если вы хотите настроить структуру только для этого, но в любом случае вы все еще создаете что-то в базе данных. Он поддерживает вашу пользовательскую модель в чистоте, но делает так же много работы. Э.Г.

 $invite = Invite::create([
    'name' => $request->get('name'),
    'email' => $request->get('email'),
    'token' => str_random(60),
]);

$invite->notify(new UserInvite());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...