Предполагая, что ваша сущность User находится в App\Entity\User
, вы можете выбрать это:
$emails = $em
->createQuery('SELECT u.email FROM App\Entity\User u')
->getResult()
;
Это вернет массив адресов электронной почты от ваших пользователей. Затем вы просто передаете это своему setTo()
методу:
$message = (new \Swift_Message('Un nouvelles articles est publier'))
->setFrom('contact@al-houria.com')
->setTo($emails)
// ...
;
См. Doctrine Примеры DQL SELECT для получения дополнительной помощи. Если вы хотите быть немного более изобретательным, вы можете добавить имя пользователя к его адресам электронной почты и отправить его. Предположим, у вас есть функция getName()
в вашей пользовательской сущности. Вместо этого вы можете сгенерировать свои адреса электронной почты, например:
$emails = [];
$users = $this->getDoctrine()->getRepository(User::class)->findAll();
foreach ($users as $user) {
$emails[$user->getEmail()] = $user->getName();
}
Тогда, когда вы позвоните ->setTo($emails)
, у него будет и имя, и адрес электронной почты.
Последнее замечание, я бы использовал $em = $this->getDoctrine()->getManager();
вместо $this->get('doctrine.orm.entity_manager');