能有人帮我拿到这个数字开始out.To这是不是重复的CRUD在Laravel三个表/模型之间的关系和。
有 2 个表 Medication_Patient Pivot Table 和 Med_Time
药物_患者数据透视表
id medication_id patient_id
1 1 (MED X) 1 (Patient X)
2 2 (MED y) 1 (Patient X)
3 2 (MED y) 2 (Patient Y)
和 MEdTime 存储时间和给药地点
id med_patient_id(foreign key) Day time given
1 1 Yesterday 0900 1
2 1 Today 0900 0
3 1 Today 2000 0
4 2 Today 0600 1
在我拥有的模型上
class Medication extends Model {
protected $guarded = [];
public function patient()
{
return $this->belongsToMany('App\Patient');
} }
class Patient extends Model
{
public function medication()
{
return $this->belongsToMany('App\Medication');
}
}
将药物分配给患者
$assignedMeds = $patient->medication()->get();
但它没有给我数据透视表的 ID,我需要找到用药时间,所以我使用了(请让我知道是否有更好的方法来做到这一点)
//get the id from medication_patient pivot Table
$medPatient = DB::table('medication_patient')->select('id')
->Where([
['patient_id','=', $patient->id],
['medication_id' ,'=', $medication->id]
])->get()->first;
$medPatientId = $medPatient->id->id;
//Using Medication_patient_id to find MedTime
$assignedMedTimes = MedTime::where('med_patient_id' ,'=' , $medPatientId)->get();
//Filtering the Med Time according to the day
$yesterdayMedTimes = $assignedMedTimes->where('day', '=', 'yesterday')->all();
$todayMedTimes = $assignedMedTimes->where('day', '=', 'today')->all();
$tomorrowMedTimes = $assignedMedTimes->where('day', '=', 'tomorrow')->all();
]);
}
但这仅在我获得 1 次用药时间(分配给患者 X 的 Med X 时间)时才有效,我如何在查询或雄辩中设置循环或关系以获取所有用药时间(患者的 MED X、Y 时间) X)并将其传递到刀片中。
白衣染霜花
潇潇雨雨