Мне любопытно узнать, где вы пишете этот код? Я предполагаю, что файл регистрации плагина?
Вот два ответа для вас. Метод where()
фактически возвращает коллекцию групп, где «code» - это «notify-admin». В лучшем примере, где цена предмета составляет 200 долларов; Вы можете иметь несколько предметов по 200 долларов. Если вы хотите получить доступ к свойству users
в коллекции, вам придется либо создать цикл foreach (или цикл for), либо вызвать метод first()
.
В вашем случае, я думаю, вы могли бы просто вызвать метод first()
, например, $backend = UserGroup::where('code', 'notify-admin')->first()->users;
и попытаться выполнить отправку почты. Я не проверял выполнение почтовой части, потому что это совсем другая проблема.
Вот несколько советов по диагностике вашей проблемы и как я получил свой ответ. Совет № 1 Не ограничивайте себя формулой. Я создал страницу CMS, и там я поместил раздел кода, выдающий мне ошибки:
function onStart() {
$this['backend'] = UserGroup::where('code', 'moderator')->get()->users;
}
Это дало мне ошибку, потому что не удалось найти класс UserGroup. Я должен был добавить:
использовать \ Backend \ Models \ UserGroup;
Затем он дал мне ошибку, которую вы получили. Совет № 2 Понимание объектов, с которыми вы работаете. Поэтому я удалил ->users
, чтобы посмотреть, что я получаю только с ->get()
. Оказывается, это коллекция моделей, где 'code' = 'notify-admin'. Ну, это приводит меня к добавлению first()
:
$backend = UserGroup::where('code', 'notify-admin')->get()->first()->users;
или это тоже работает
$backend = UserGroup::where('code', 'notify-admin')->first()->users;