【问题标题】:I hv 2 tables patients(name field) and medications(completed field) I want to find patientname and medication info if medication completed == false我有 2 个表患者(姓名字段)和药物(已完成字段)如果药物完成 == false,我想查找患者姓名和药物信息
【发布时间】:2019-01-26 01:04:35
【问题描述】:

获取药物不完整的患者数量以及带有药物详细信息的患者姓名。

我在我的 PatientController 索引方法中尝试过这个

$ontreatment = Patient::all()->medications->where('completed', false)->get();

我的 Patient.php 有如下关系

public function medications()
{
    return $this->hasMany('App\Medication');
}

我的 Medication.php 模型有以下关系:

public function patients()    
{
    return $this->belongsTo('App\Patient');    
}

我的路线如下:

Route::get('/patients', 'PatientsController@index');

没有。未完成服药的患者数量,如果治疗不完整,则附有患者姓名和药物详细信息(临床医生、治疗、治疗日期...)的表格。

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    您可以将medications 关系限制如下:

    $ontreatment = Patients::whereHas('medications', function($query) {
        $query->where('completed', false);
    })->get();
    

    这是你要找的吗?

    【讨论】:

    • 我真的不明白为什么它会给出错误(意外的'}')但代码看起来语法正确)。
    • 这里少了一个分号。我现在已经添加了。让我知道它是否有效。
    • 代码现在还可以,但很困惑..不知道在哪里粘贴它以及如何访问 $ontreatment 变量。我是 laravel 初学者。
    • 抱歉,对此帮不上什么忙。这个答案在你的问题范围内。您需要发布另一个问题,说明您想要实现的目标。
    • 如果我有 5 名患者和 3 名已完成服药,我想从两个表中获取未完成服药的人数(在本例中为 2 人)以及有关他们的信息。 (来自患者表的名称....临床医生,入院日期....来自药物表​​)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    相关资源
    最近更新 更多