我很想知道您在哪里编写此代码?我假设一个插件注册文件?
这里有两个答案。 where() 方法实际上是返回一个组的集合,其中'code' 是'notify-admin'。在一个更好的例子中,一件商品的价格是 200 美元;你可以有多个 200 美元的物品。如果您想访问集合中的 users 属性,您必须创建一个 foreach 循环(或 for 循环)或调用 first() 方法。
在您的情况下,我认为您可以像 $backend = UserGroup::where('code', 'notify-admin')->first()->users; 那样调用 first() 方法并尝试执行邮件发送。我没有测试执行电子邮件部分,因为那是另一个问题。
这里有一些提示来诊断您的问题以及我是如何得到答案的。提示 #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;