如何将查询变量应用于 whereHas 闭包?
How to apply query variable to whereHas closure?
我有一个存储在变量中的查询。
如何将此变量应用于 whereHas 闭包?
$productQuery = ...; // complex query comes from another class
return CategoryModel::whereHas('products', function ($query) use($productQuery) {
$query->apply($productQuery) // I need to apply product query here but Laravel has not this method
})->get();
在搜索 Laravel QueryBuilder class 后,我找到了一个方法 mergeConstraintsFrom
,通过这个方法,我可以在 whereHas 闭包中重用我的查询。最终代码是:
$productQuery = ...; // complex query comes from another class
return CategoryModel::whereHas('products', function ($query) use($productQuery) {
$query->mergeConstraintsFrom($productQuery);
})->get();
我有一个存储在变量中的查询。
如何将此变量应用于 whereHas 闭包?
$productQuery = ...; // complex query comes from another class
return CategoryModel::whereHas('products', function ($query) use($productQuery) {
$query->apply($productQuery) // I need to apply product query here but Laravel has not this method
})->get();
在搜索 Laravel QueryBuilder class 后,我找到了一个方法 mergeConstraintsFrom
,通过这个方法,我可以在 whereHas 闭包中重用我的查询。最终代码是:
$productQuery = ...; // complex query comes from another class
return CategoryModel::whereHas('products', function ($query) use($productQuery) {
$query->mergeConstraintsFrom($productQuery);
})->get();