Laravel - 多个收件人的多个阵列(Mailable / Notifications)

问题描述 投票:0回答:1

我正在寻找一个项目的建议和一个我自己陷入困境的有趣困境。

我的货件模型中有多个字段,它们是:

  • shipto_id
  • shipfrom_id
  • billto_id

它们都(通过不同的关系)链接到我的客户模型:

public function billtoAccount()
{
    return $this->belongsTo('App\Customer', 'bill_to');
}

public function shiptoAccount()
{
    return $this->belongsTo('App\Customer', 'ship_to');
}

public function shipfromAccount()
{
    return $this->belongsTo('App\Customer', 'ship_from');
}

而这些客户(实际上可能更好地描述为客户账户(这些不是用户账户,它们更像是每个公司业务完成的配置文件))可以拥有与之相关的众多用户。

 public function users()
{
    return $this->belongsToMany(User::class);
}

现在,虽然我知道如何发送邮件和通知,但我很想知道如何将这些邮件发送给多个用户的电子邮件。因此,让我描述以下内容:创建了一些东西,并引用了以下客户(反过来,他们的用户)。

现在,我将如何将用户的电子邮件移动到一系列电子邮件中以发送通知或邮寄给他们?

所以它应该弹出:email1 @ example.com,email2 @ example.com,email3 @ example.com,email4 @ example.com

laravel email laravel-5 notifications
1个回答
3
投票

阐述@Devon的评论:这是业务逻辑。您可以在Shipment模型上有一个方法,该方法返回要作为数组通知的客户实例,例如getNotifiables() : array

然后在您的Customer模型中,您可以使用Notifiable trait

use Illuminate\Notifications\Notifiable;

并循环遍历您的Notifiables,即客户

$notification = new ShipmentWasCreated()
foreach ($shipment->getNotifiables() as $notifiable) {
    $notifiable->notify($notification);
}
© www.soinside.com 2019 - 2024. All rights reserved.