簡體   English   中英

Laravel 5.2 Eloquent - 通過多種關系查找所有id

[英]Laravel 5.2 Eloquent - Finding all id's through multiple relationships

所以這是我的關系:

基金屬於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。 有任何想法嗎?

所以如果你的關系是這樣的 -

PlanCode 有很多 基金

基金 屬於 PlanCode

PlanType 有許多 PlanCodes

PlanCode 屬於 PlanType

然后你可以添加這樣的另一種關系 -

PlanType 通過 PlanCodes 擁有許多 基金

UPDATE

在您的PlanType類中添加這樣的函數后 -

public function funds() {
    return $this->hasManyThrough('fund', 'planCode', PT, PC);
}

您可以像這樣訪問PlanType模型上的基金 -

$planType->Funds

看看這里的文檔。

是的,atefth有一個。 Laravel有一個非常有用的關系,因此您不必重復查詢數據庫以獲得關系關系。 這是hasManyThrough關系。

所以在這里,例如,您的planType模型通過 planCode模型有許多基金模型。 您的planType模型應該包含一個看起來像這樣的基金方法,其中PC是基金表中的planCode-> id列名,PT是planCode表中的planType-> id列:

public function funds() {
    return $this->hasManyThrough('fund', 'planCode', PT, PC);
}

您可能必須完全命名模型,具體取決於應用程序的結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM