Laravel ежедневно по электронной почте отправлять несколько пользователей с графиком - PullRequest
0 голосов
/ 29 сентября 2018

Мне нужно отправлять электронную почту нескольким пользователям каждый день.Мой код такой.Это также работает, но я неправильно понял.

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 голосов
/ 29 сентября 2018

«Старый» код запускал событие Notification :: send дважды, один раз для получателей и один раз для советника.

Ваш «новый» код запускает его только один раз для получателей, таким образом, советникя не получаю уведомления по электронной почте.

Теперь я могу неправильно понять ваш код из-за отсутствия дополнительной информации, но если вы хотите отправить уведомление клиентам $ advisor->, вам не нужно их циклически повторять исделать новый массив, фактически Notification :: send ожидает коллекцию

Просто сделайте:

foreach($advisors as $advisor) {
    if (count($advisor->clients) > 0) {
        Notification::send($advisor->clients, new DailyEmail($advisor));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...