我的数据库中有两个表:
tbl_patient_master 表的列是:
tbl_dept_master 表的列是:
现在,我想显示特定部门的患者列表。如果用户说“ENT”,那么所有患有“耳鼻喉科”的患者都应该返回。
为此我在模型中创建了以下关系。
public function department()
{
return $this->belongsTo('App\Entities\Department','dept_id');
}
此代码用于获取控制器中的数据:
$patients = $this->repository->with(array('department' => function ($query) use ($dept_name)
{
$query->where('dept_name', '=', $dept_name);
}))->all();
不幸的是,这将使所有患者不仅仅是特定部门的患者。 我应该怎样做才能让所有患者来自特定部门?
感谢。
答案 0 :(得分:0)
您不需要使用存储库,只需使用患者模型即可。 您已定义关联,因此这应该有效:
App\Patient::where('dept_name', '=', 'ENT');
答案 1 :(得分:0)
如果您想从Patient
模型角度进行操作,可以选择使用whereHas
。
$dept_name = Input::get('dept_name');
$patients = Patient::whereHas('department', function ($query) use ($dept_name) {
$query->where('dept_name', '=', $dept_name);
})->get();