需要在Laravel中的查询函数中包含变量

时间:2017-07-06 13:01:19

标签: laravel eloquent

我有这样的事情:

$config

这不起作用,因为查询函数中未定义$config->id

如何将{{1}}对象放在那里?

3 个答案:

答案 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'));       
});