mysql - Laravel 5.2 中的多表搜索查询

标签 mysql model controller laravel-5 eloquent

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

这是我的过滤器:

enter image description here

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

enter image description here

患者模型:

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

关于mysql - Laravel 5.2 中的多表搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47606328/

相关文章:

android - 我在android中的模型需要为单例吗?

jquery - 在 MVC3 中使用 jQuery 函数和模型

macos - 将对象添加到 NSDictionaryController

mysql - 带有子选择和多行的 SQL 插入

mysql - 通过用户id插入数据

opencv - 在哪里设置用于solvePnP的模型空间的原点

iphone - 隐藏后显示标签栏

php - CakePHP 2.4 - 数据库更新不保存所有传递的数据一个字段永远不会持久化

mysql - MySQL 中的键有什么用?

javascript - 如何将 html 脚本变量传递给 Controller ​​?