这就是场景。我的用户A通过通知发送给其他用户B,C,D ...加入群组的请求。所以在laravel中我创建了迁移和控制器来处理通知。
这是GroupController的代码
size_impl
所以在...
foreach ($userINList as $userIN) {
$userIN = str_replace(' ', '', $userIN);
$userDBList = User::all();
foreach ($userDBList as $userDB) {
$name = $userDB->last_name . $userDB->first_name;
$name = str_replace(' ', '', $name);
if (strcmp($name, $userIN) == 0) {
$newGroup->users()->attach($userDB->id, ['role' => 'member', 'state' => 'pending']);
$notification = User::find($userIN->id);
$notification->notify(new GroupNotification($newGroup));
}
}
}
...
我将尝试传递接收邀请的用户的ID,然后我使用notify()方法发送通知,但是在用户A创建了组之后没有用户B,C,D的通知......
我在组模型中包含了$notification
。所以有什么问题?我必须做的事。
由于
答案 0 :(得分:1)
据我所知,您正在执行以下操作:
$userINList
变量User
User
User
名称中的所有空格User
添加到论坛并发送通知我们可以在这里做出很多改进。例如,我们已经知道您希望通知哪些用户,因此您无需获取和比较所有用户。
首先,$userINList
要么是User
个对象的数组,要么是User
id
的数组 - {{{ 1}}对象更好。然后你可以简单地遍历每一个。
例如,如果你有一组id,那么你可以这样做:
User
如果你有一个对象数组,那就更容易了,你可以这样做:
$group = Group::find(1);
$userINList = [1, 2, 3, 4];
User::whereIn('id', $userINList)
->get()
->each(function ($user) use ($group) {
$group->users()->attach($user->id, [
'role' => 'member',
'state' => 'pending'
]);
$user->notify(new GroupNotification($group));
});
超级简单:-)