Вы не передаете электронное письмо функции, вы пытаетесь передать свойство коллекции (email
), которая не существует. Это не удается (и, вероятно, выдает ошибки в вашем журнале), поэтому функция отправляется null
в качестве параметра.
$utilizadores_expedic = DB::connection('lamiapps')
->table('tbl_users')
->select('email')
->where('group_id', '=', 3)
->get();
// $utilizadores_expedic is now a collection of stdClass objects
// but you are trying to get its email property which does not exist
Mail::to($utilizadores_expedic->email)
->send(new NewOrdersRegistered('', ''));
Согласно документации ,
Метод to
принимает адрес электронной почты, экземпляр пользователя или коллекцию пользователей. Если вы передадите объект или коллекцию объектов, почтовая программа автоматически использует их свойства email
и name
при настройке получателей электронной почты, поэтому убедитесь, что эти атрибуты доступны для ваших объектов.
Вот, вероятно, то, что вы хотите:
$utilizadores_expedic = DB::connection('lamiapps')
->table('tbl_users')
->select(['email', 'name'])
->where('group_id', '=', 3)
->get();
Mail::to($utilizadores_expedic)
->send(new NewOrdersRegistered('', ''));
Хотя я всегда обеспокоен, когда вижу, что кто-то использует фасад DB
. Обычно это означает, что модели не настроены должным образом. Это было бы больше похоже на Laravel способ получить это:
$utilizadores_expedic = Group::find(3)->users;
Mail::to($utilizadores_expedic)
->send(new NewOrdersRegistered('', ''));