我有这样的事情:
$config
这不起作用,因为查询函数中未定义$config->id
。
如何将{{1}}对象放在那里?
答案 0 :(得分:2)
闭包封装了它的作用域,这意味着它无法访问定义或执行它的作用域。但是,可以使用use关键字从父作用域(定义闭包)继承变量到闭包中:
$documents = document::whereHas('user', function ($q) use ($config) {
$q->where("portal_id", $config->id),})->get()
}
答案 1 :(得分:1)
您可以使用use()
$documents = document::whereHas('user', function ($q) use($config->id) {
$q->where("portal_id", $config->id),})->get()
...
}
答案 2 :(得分:1)
你也可以像这样写,不需要编写foreach循环:
$configurations = Configs:all();
$documents = Document::whereHas('user', function($q) use($configurations) {
$q->whereIn('portal_id', $configurations->pluck('id'));
});