我的模型关系如下:
Beneficiary has-many FamilyMembers
Earner is-a FamilyMember
简单地说,受益人是一家之主。有家庭成员,“其中一些人”被认为是“打工仔”,因为他们给家庭带来了收入。
Beneficiary {id, name}
FamilyMember {beneficiary_id, id, name}我把这个建模为:
Beneficiary hasMany FamilyMember
FamilyMember belongsTo Beneficiary
Earner hasOne FamilyMember <-- but I think this is wrong我的要求是获得收入者的姓名(收入者->会员->姓名)。
在我的控制器中,$beneficiary是可用的(implicit binding)。然后,我将家庭成员加载为:
$beneficiary->load(['familyMembers']);我需要从会员模型中得到收入者的名单和收入者的名字。
我想不出一个正确的建模方法。如果有人能帮我安排关系,那就太好了。
发布于 2018-05-02 09:21:15
好的,如果我做对了。
收入者是家庭成员,所以你不能做赚钱的人hasOne FamilyMember
首先,简单地说,模型是数据库表的实现。
因为您没有“打工仔”表,所以不需要一个名为Earner的模型
我有一个问题要澄清:受益人是家庭成员,而收入者也是家庭成员,对吗?
那么在我看来,你们的桌子是:
FamiliesFamily_membersBeneficiaries在Families表中:一个家庭将只有一个id和一个name
在Family_members表中: family_member将包含id、name、family_id、is_earner
在Benficiaries表中:受益人将拥有id、family_id、family_member_id
因此,您可以控制Beneficiaries表中的family_id和family_member_id合并的唯一记录,这意味着这个表将只保存每个家庭的受益人,而每个家庭在这个表中应该只有一个记录。
对于“打工仔”而言,布尔列is_earner将指示family_member是否为家庭赚钱,这样,每个家庭就可以有许多“打工仔”(这是有道理的)
如果你还有什么问题,或者我在你的问题上出了什么问题,请告诉我!
https://stackoverflow.com/questions/50123001
复制相似问题