如何在laravel中合并两个雄辩的查询? [英] How can I merge two eloquent queries in laravel?
本文介绍了如何在laravel中合并两个雄辩的查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在做laravel项目.需要合并两个复杂的口才查询,而不是查询结果.有什么办法可以合并两个查询?
I am making laravel project. There is need to merge two complex eloquent queries, not query result. Is there any way to merge two queries?
$query = DeviceReport::query();
$query_setting_null = $query;
$query_not_null = $query;
$query_setting_null->where(function ($q) {
$q->whereNotNull('device_setting_id');
});
if ( $company_id ) {
$query_setting_null->whereHas('deviceSetting', function ($q) use ($company_id) {
$q->where('company_id', $company_id);
});
}
........
$query_not_null->where(function ($q) {
$q->whereNull('device_setting_id');
});
if ( $company_id ) {
$query_not_null->whereHas('deviceAssignment', function ($q) use ($company_id) {
$q->where('company_id', $company_id);
});
}
........
$query = $query_not_null->merge($query_setting_null);
return $query;
抱歉,我的代码有些麻烦.要点如下:
My code looks some diry, sorry. The main point is follows:
$query_setting_null->where(function ($q) {
$q->whereNotNull('device_setting_id');
});
.........
$query_not_null->where(function ($q) {
$q->whereNull('device_setting_id');
});
.........
device_setting_id的值取决于查询之后;
The value of device_setting_id depends after queries;
推荐答案
我不完全理解您要尝试的内容,但是合并 whereNull
和 whereNotNull
的查询就像这个:
I don't completely understand what you are trying but merging queries of whereNull
and whereNotNull
is like this:
$query_merged->where(function ($q) {
$q->whereNotNull('device_setting_id');
})->orWhere(function ($q) {
$q->whereNull('device_setting_id');
});
不确定这是否是您想要的.让我知道是否有帮助.
Not sure if this is what you want. Let me know if it helps.
这篇关于如何在laravel中合并两个雄辩的查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文