Laravel每日电子邮件向多个用户发送时间表

时间:2018-09-29 04:47:47

标签: laravel email schedule

我每天都需要向多个用户发送电子邮件。 我的代码是这样的。 它也可以,但是我误会了。

foreach($advisors as $advisor) {
    $receivers = [];
    foreach($advisor->clients as $client) {
        array_push($receivers, $client);
    }
    array_push($receivers, $advisor);

    if (count($receivers) > 0) {
        Notification::send($receivers, new DailyEmail($advisor));
    }
}

在我像下面这样编码之前。

foreach($advisors as $advisor) {
    $receivers = [];
    foreach($advisor->clients as $client) {
         array_push($receivers, $client);
    }

    if (count($receivers) > 0) {
         Notification::send($receivers, new DailyEmail($advisor));
    }
    Notification::send($advisor, new DailyEmail($advisor));
}

但是,如果我这样编写代码,则只有一个用户收到电子邮件。

我不明白,为什么这样做不一样。 如果您能对此进行解释,请。

1 个答案:

答案 0 :(得分:0)

“旧”代码触发两次Notification :: send事件,一次用于接收者,一次用于顾问。

您的“新”代码仅向接收者触发一次,因此顾问不会收到电子邮件通知。

现在我可能由于缺少更多信息而误解了您的代码,但是如果您想将通知发送给$ advisor->客户端,则不需要循环它们并创建一个新数组,实际上是Notification ::发送期望的收藏

只需:

foreach($advisors as $advisor) {
    if (count($advisor->clients) > 0) {
        Notification::send($advisor->clients, new DailyEmail($advisor));
    }
}