【发布时间】:2019-11-06 20:54:18
【问题描述】:
在 Laravel 文档中,它声明:
使用通知外观
或者,您可以发送 通过 Notification 门面通知。这主要是有用的 当您需要向多个应通知实体发送通知时 比如用户集合。要使用外观发送通知, 将所有应通知实体和通知实例传递给 发送方法:
Notification::send($users, new InvoicePaid($invoice));
所以我在我的控制器中这样做:
public function index()
{
$subscribers = Subscribers::all();
Notification::send($subscribers, new NewVacancy($subscribers));
}
这是我的通知类
class NewVacancy extends Notification implements ShouldQueue
{
use Queueable;
public $subscriber;
public function __construct( $subscribers)
{
$this->subscriber = $subscribers;
}
public function toMail($notifiable)
{
return (new MailMessage)->view(
'mail.new-vacancy',
['uuid' => $this->subscriber->uuid]// This fails as $subscriber is a collection
);
}
....
问题在于,在 NewVacancy 类中,传入的 $subscriber 是所有订阅者的完整集合,而不是正在发送的单个通知。
现在我知道我可以在 $subscribers 上循环并每次触发 Notification::send() ,但这违背了使用外观开始的意义。
总体目标是向所有$subscribers 发送电子邮件,并能够使用刀片模板传递独特的订阅者数据。
【问题讨论】: