我正在处理一个代码段,但我必须检查另一个表,如果该客户数据存在,则返回数据。如果就业表上不存在客户数据,则返回基于前一个检查的数据,然后忽略其余数据,但如果存在,则我希望使用指定的条件来检查并返回该数据。这是我试过的。
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);
我清理了您的代码,并将orWhereHas()
更改为whereHas()
:
Customers::query()
->distinct('id')
->whereHas('quote')
->whereHas('profile', function ($query) {
$query->where(function ($query) {
$query->whereNull('nin')->WhereNull('bvn');
})->orWhere(function ($query) {
$query->whereNotNull('nin')->whereNotNull('bvn');
});
})->whereHas('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);