3 回答

TA貢獻1796條經驗 獲得超10個贊
假設您正確地創建了 、 和 模型之間的 laravel 關系,則可以通過以下方式訪問:PortalCasePatientOperator
// you get Case model
$case = \App\Case::findOrFail($case_id);
// patients: there is a hasMany relationship between Case and Patient models
$data['patients'] = $case->patients;
// there is a belongsTo relationship between Case and Portal models
$portal_name = $case->portal->Name;

TA貢獻1777條經驗 獲得超3個贊
你必須使用另一種關系
$data['patients'] = Patient::with('operator', 'cases.portal')
->get();
在病人中 :
public function cases(){
return $this->hasMany(Case::class);
}
倘:
public function portal(){
return $this->belongsTo(Portal::class);
}
然后您可以使用以下命令訪問它:
foreach($data['patients'] as $patient){
foreach($patient->cases as case){
$var = $case->name;
}
}
或者,如果您只想要所有門戶名稱:
$portals_names = $data['patient'][0]->pluck('cases.portal.name')

TA貢獻1995條經驗 獲得超2個贊
Normaly,如果您在模型中執行了正確的關系,則只能使用:
$data['patients'] = Patient::with('operator')->where('case_id', $case_id)->get();
$portals = [];
foreach ($data['patients'] as $patient) {
foreach ($patient->cases as $case) {
$portals []= $case->portal;
}
}
我想在患者和病例之間有一個,在病例和門戶之間有一個?HasManyBelongTo
如果要延遲加載數據,可以嘗試:
$data['patients'] = Patient::with(['operator', 'cases.portal'])->where('case_id', $case_id)->get();
- 3 回答
- 0 關注
- 123 瀏覽
添加回答
舉報