如何将集合或数组发送到Notification Facade

时间:2019-06-09 15:06:40

标签: laravel laravel-5

我有一个收藏集,例如:

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

您能帮助我了解如何将集合发送到Notification Facade以便向该用户发送电子邮件吗?

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您要询问如何发送到列表中的收藏集,而不是当前用户,我想如果要使用Notification Facade,则需要(至少暂时)创建用户或个人。查找到要发送的数据库。从手册中:

  

您可以通过“通知”外观发送通知。这主要在您需要将通知发送到多个可通知实体(例如用户集合)时有用。要使用外观发送通知,请将所有可通知的实体和通知实例传递给send方法。

要使此功能正常运行,您将需要在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());