【发布时间】:2021-05-31 11:34:48
【问题描述】:
我正在处理 sn-p 但我必须检查另一个表如果该客户数据存在则返回数据如果就业表上不存在客户数据还返回基于前一个检查的数据然后忽略其余的但如果确实如此,我想使用指定的条件来检查并返回该数据。这是我尝试过的。
Customers::query()
->distinct('id')
->whereHas('quote')
->where(
function ($query) {
$query->whereHas('profile', function ($query) {
$query->where(function ($query) {
$query->whereNull('nin')->WhereNull('bvn');
})->orWhere(function ($query) {
$query->whereNotNull('nin')->whereNotNull('bvn');
});
})->orWhereHas('employment', function ($query) {
$query->where(function ($query) {
$query->whereNull('bank_statement_url')->WhereNull('mono_account_statement_url');
})->orWhere(function ($query) {
$query->whereNotNull('bank_statement_url')->whereNotNull('mono_account_statement_url');
});
});
}
)->paginate(30);
【问题讨论】:
-
是否有错误可以与我们分享,或者您能否向我们展示预期结果与实际结果?
-
@shaedrich 没有错误我只是得到混合数据。例如,我让一个有 nin 或 bvn 的人与没有的人一起
-
这可能是因为您的
orWhereHas()适用于后一种情况。也许您必须使用 AND 而不是 OR,只需使用->whereHas()而不是orWhereHas()。这有帮助吗? -
感谢@shaedrich 这次没有工作它根本没有获取任何数据我已经查看了这个东西超过 2 天我仍然无法弄清楚错误或者是什么没有造成它带上正确的数据。
标签: php database laravel eloquent nested-queries