我正在使用 Laravel v8
我有3个模型:Family(家庭)、FamilyMember(家庭成员)、FamilyRelationship(家庭关系)
家庭表:
id | address | created_at | updated_at |
---|---|---|---|
1 | 测试地址 | NULL | NULL |
家庭关系表:
id | name | created_at | updated_at |
---|---|---|---|
1 | 家长 | NULL | NULL |
2 | 配偶 | NULL | NULL |
3 | 孩子 | NULL | NULL |
家庭成员表:
id | first_name | last_name | family_id | family_relationship_id |
---|---|---|---|---|
1 | 约翰 | 杜 | 1 | 1 |
2 | 简 | 杜 | 1 | 2 |
3 | 马克斯 | 杜 | 1 | 3 |
4 | 玛丽 | 杜 | 1 | 3 |
我在 Family 模型中创建了关联:
public function members(){
return $this->hasMany(FamilyMember::class, 'family_id');
}
在Family Member模型中,家庭关系被定义为家庭成员之间的关系。
public function familyrelationship()
{
return $this->belongsTo(FamilyRelationship::class, 'family_relationship_id');
}
我正在使用Datatable展示家庭信息,包括家庭的负责人。
我想从Family模型中显示id和address列,以及从Family Member模型中显示first_name和last_name列,其中家庭成员关系为Head。
如何通过建立关系来在可搜索的Datatable网格中仅显示家庭负责人的详细信息?
虽然可以使用Eloquent JOINs轻松实现上述操作,但我想知道是否可以利用Laravel提供的关系功能实现。