【发布时间】:2021-12-21 04:17:11
【问题描述】:
我正在使用 Laravel v8
我有 3 个模型:Family、FamilyMember、FamilyRelationship
家庭表:
| id | address | created_at | updated_at |
|---|---|---|---|
| 1 | test | NULL | NULL |
家庭关系表:
| id | name | created_at | updated_at |
|---|---|---|---|
| 1 | Head | NULL | NULL |
| 2 | Spouse | NULL | NULL |
| 3 | Child | NULL | NULL |
家庭成员表:
| id | first_name | last_name | family_id | family_relationship_id |
|---|---|---|---|---|
| 1 | John | Doe | 1 | 1 |
| 2 | Jane | Doe | 1 | 2 |
| 3 | Max | Doe | 1 | 3 |
| 4 | Mary | Doe | 1 | 3 |
我在 Family 模型中创建了关系
public function members(){
return $this->hasMany(FamilyMember::class, 'family_id');
}
Family Member模型中的Family Relationship关系为
public function familyrelationship()
{
return $this->belongsTo(FamilyRelationship::class, 'family_relationship_id');
}
我正在使用 Datatable 来显示家庭信息以及 一家之主
我想显示 Family 模型中的列 id 和 address 以及 first_name 和 last_name 来自 Family Member 模型,其中家庭成员关系为 Head。
应该如何继续建立关系以在可搜索的数据表网格中仅显示户主详细信息?
使用 eloquent JOIN 可以轻松实现上述目标,但我想知道是否可以使用 Laravel 提供的关系功能来实现。
【问题讨论】:
-
到目前为止你尝试了什么?
标签: laravel datatable relationship laravel-8 eager-loading