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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel - 多个收件人的多个阵列(Mailable / Notifications)相关的知识,希望对你有一定的参考价值。

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

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

  • 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);
}

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

  • (billto_id) - 客户帐户1 - 用户1(email1@example.com)
  • (shipto_id) - 客户帐户2 - 用户2(email2@example.com)和用户3(email3@example.com)
  • (shipfrom_id) - 客户帐户37 - 用户6(email4@example.com)

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

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

答案

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

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

use Illuminate\Notifications\Notifiable;

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

$notification = new ShipmentWasCreated()
foreach ($shipment->getNotifiables() as $notifiable) {
    $notifiable->notify($notification);
}

以上是关于Laravel - 多个收件人的多个阵列(Mailable / Notifications)的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5.4 中向多个抄送收件人发送电子邮件

使用 Python smtplib 从 .txt 文件向多个收件人发送电子邮件

当我在 laravel 中发送邮件时发送 Html 标签

如何将消息发送给多个收件人

无法在 laravel 5.2 中发送没有发件人地址的消息我已经设置了 .env 和 mail.php

在 Laravel 4.2 中覆盖 Mail MailgunTransport 类