Laravel 9:向有角色的用户发送数据库通知



可能的重复:如何解决调用数组上的成员函数notify() ?

我正在尝试向具有管理员角色的用户发送数据库通知。由于我使用的是Filament,所以我也遵循了通知的文档

首先,我创建了一个名为接收者的变量:

$recipients = User::whereHas("roles", function($q) {
$q->whereIn("id", [
1, // Super Admin
6, // Admin
2, // Security Supervisor
5, // Security Manager
]);
})->pluck('email')->toArray();

使用role id检查用户并将他们的电子邮件提取到数组中。

Then I do:

$recipients->notify(
Notification::make()
->title('New Incident Created')
->icon('heroicon-o-document-text')
->toDatabase(),
);

我得到错误:Call to a member function notify() on array.

你正在做一个数组上的通知,也通知需要在用户模型上调用,因为它实现了可通知的特性:use Notifiablehttps://laravel.com/docs/9.x/notifications#using-the-notifiable-trait

$recipients = User::role(['Super Admin', 'Admin', 'Security Supervisor', 'Security Manager'])->get();
foreach($recipients as $recipient){
$recipient->notify(
Notification::make()
->title('New Incident Created')
->icon('heroicon-o-document-text')
->toDatabase(),
);  
}

最新更新