我有5个看起来像这样的实体:
character --> character_equipement <-- equipement --> stats_equipement <-- stats
我想为他的所有设备选择一个已定义的角色,并且每个设备都需要统计数据。
角色模型:
public function equipements(){
return $this->belongsToMany(EquipementsModel::class, 'stuff_equipement', 'id_stuff','id_equipement');
}
设备型号:
public function stats(){
return $this->belongsToMany(Stats::class, 'stats_equipement', 'id_equipement','id_equipement');
}
控制器:
$stuff = Character::with('equipements')->where('lien_stuff',$id)->first();
这样,我检索定义角色的所有设备。我不知道如何告诉我的角色模型他必须通过Equipements Model来查看统计数据。
我想到了第一种方式,在调用我的控制器时,它将通过设备()然后寻找与他自己的模型的关系......
答案 0 :(得分:1)
您可以使用点表示法来链接关系。一旦掌握了它,它实际上相当容易。我有点猜测列上的名称是什么加起来,但希望你能得到这个想法。
$character = Character::with('equipements.stats')->where('lien_stuff',$id)->first();
$totalStats = 0;
foreach ($character->equipments as $equipment) {
foreach ($equipment->stats as $stat) {
$totalStats += $stat->value;
}
}