具有不同表的 Laravel 关系数据基于条件

问题描述

我正在处理一个片段,但我必须检查另一个表,如果该客户数据存在,则返回数据,如果就业表中不存在客户数据,也返回基于前一个检查的数据,然后忽略其余部分,但如果我是否想使用指定的条件来检查和返回该数据。这是我尝试过的。

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);

解决方法

我稍微清理了您的代码并将您的 +-----------------------------------+ |Title | |Detail detail detail detail | |more detail more detail more detail| +-----------------------------------+ 更改为 orWhereHas()

whereHas()