所以这是我的关系:
基金属于planCode
planCode属于planType
我需要做的是找到属于某些计划类型的fund_id。我试过这样的事情:
$plans = (new 'App\PlanType')->with('planCode.fund')->whereIn('code', ['PENS', 'ANN', 'WEL'])->get();
有了这个,我得到了三个计划代码,他们的关系急切加载。我想要的是所有fund_id的列表。我尝试了$plans->lists('planCode.fund.fund_id', 'code')
但是这对于fund_id返回null。有什么想法吗?
答案 0 :(得分:2)
所以如果你的关系是这样的话 -
PlanCode 有很多 基金
基金 属于 PlanCode
PlanType 有很多 PlanCodes
PlanCode 属于 PlanType
然后你可以添加另一个这样的关系 -
PlanType 有多个 基金 到 PlanCodes
<强>更新强>
将此类函数添加到 PlanType 类 -
之后public function funds() {
return $this->hasManyThrough('fund', 'planCode', PT, PC);
}
您可以像这样访问 PlanType 模型中的基金 -
$planType->Funds
查看文档here。
答案 1 :(得分:1)
所以在这里,例如,您的planType模型有许多基金模型通过 planCode模型。您的planType模型应该包含一个看起来像这样的基金方法,其中PC是基金表中的planCode-&gt; id列名,PT是planCode表中的planType-&gt; id列:
public function funds() {
return $this->hasManyThrough('fund', 'planCode', PT, PC);
}
您可能必须完全命名模型,具体取决于应用程序的结构。