如何通过laravel模型获取对象内的对象

时间:2017-12-01 12:45:10

标签: mysql laravel laravel-5 model controller

我在laravel 5.2中制作Web应用程序....我将患者数据存储在患者表中(患者表不包含医生和治疗数据区域),然后我开始计费包含患者账单数据的表。在结算表中,我想从两列(doctor_id和area_of_treatment_id)中检索数据,就像我通过在患者模型中定义关系来检索账单一样...

我已经检索了患者及其账单,但我还需要医生和治疗表区域数据,使用他们存储在账单表中的ID ....我已经在患者模型中定义了账单关系...请帮我解决我的问题

患者模型中的结算关系:

public function billing()
    {
        return $this->belongsTo(Billing::class,'mr','mr');
    }

患者控制器:

$patients = \App\Patient::with(['billing'])->get();

患者数据以及结算:

enter image description here

1 个答案:

答案 0 :(得分:0)

您还应该在结算模式中定义关系:

public function doctor()
{
    return $this->belongsTo(Doctor::class);
}

public function areaOfTreatment()
{
    return $this->belongsTo(AreaOfTreatment::class);
}

然后,您可以通过嵌套的预先加载来急切加载对象:

$patients = \App\Patient::with(['billing', 'billing.doctor', 'billing.areaOfTreatment'])->get();

参考:https://laravel.com/docs/5.5/eloquent-relationships#eager-loading