Laravel 5.2 中的多个 Table 搜索查询

Multiple Table search query in Laravel 5.2

尝试从过滤器中的三个 table 中搜索患者记录...我已经编写了患者姓名和患者 phone 的代码,但卡在了治疗区域和医生,因为它们都在不同的table..请帮忙写一个查询这个过滤器...

这是我的过滤器:

患者数据以及账单(医生和治疗区域):

患者模型:

public function scopeQueryStringFilters( $query )
{

    if(request()->has('patient_name'))
    {
        $query->where('name',request('patient_name'));
    }

    if(request()->has('patient_phone'))
    {
        $query->where('phone',request('patient_phone'));
    }

}

您可以使用 whereHas 方法。

Patient::whereHas('billing', function($query){
    $query->where('area_of_treatment_id', request('area_of_treatment_id'));
})
->get();

Patient::whereHas('billing.doctor', function($query){
    $query->where('name', request('doctor'));
})
->get();