Laravel 5.2中的多表搜索查询

时间:2017-12-02 09:18:02

标签: mysql model controller laravel-5.2 laravel-eloquent

尝试从过滤器中的三个表中搜索患者记录...我已经编写了患者姓名和患者电话的代码但是因为他们两个都在不同的表中而被困在治疗区域和医生处...请帮助为此过滤器编写查询...

这是我的过滤器:

enter image description here

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

enter image description here

患者模型:

k_id    main_id     keyword    click  price   click_time
    1     1         aaa         1     0.25    2017-11-05
    2     1         bbb         1     0.36    2017-11-05
    3     1         bbb         1     0.45    2017-11-05
    4     1         aaa         1     0.36    2017-11-05
    5     1         ccc         1     0.98    2017-11-05
    6     1         bbb         1     0.55    2017-11-05
    7     1         aaa         1     0.25    2017-11-05
    8     1         ccc         1     0.98    2017-11-05
    9     1         aaa         1     0.25    2017-11-05
    10    1         bbb         1     0.45    2017-11-05

1 个答案:

答案 0 :(得分:1)

您可以使用 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();