繁体   English   中英

在Laravel 5中的渴望加载中应用Where子句

[英]Apply Where clause in eager loading in Laravel 5

我的数据库中有两个表:

  1. tbl_patient_master
  2. tbl_dept_master

tbl_ Patient_master表的列为

  • Patient_id
  • 患者姓名
  • dept_id
  • created_at
  • Updated_at

tbl_dept_master表的列为

  • dept_id
  • 部门名称
  • dept_type

现在,我想显示一个特定部门的患者名单。 如果用户说“ ENT”,则应返回所有具有“ 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();

不幸的是,这将使所有患者返回,而不仅仅是特定部门的患者。 我应该怎么做才能让所有患者都来自某个特定部门?

谢谢。

您不需要使用存储库 ,只需使用Patient模型。 您已经定义了关联,因此这应该起作用:

App\Patient::where('dept_name', '=', 'ENT');

如果要从“ Patient模型角度进行操作,则可以选择使用whereHas

$dept_name = Input::get('dept_name');

$patients = Patient::whereHas('department', function ($query) use ($dept_name) {
    $query->where('dept_name', '=', $dept_name);
})->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM