急于加载Laravel中嵌套的雄辩关系

时间:2020-03-21 13:50:03

标签: laravel

我正在创建一个Laravel应用程序,即项目保修系统。

涉及3个模块,分别是项目,保修和索赔。

Item -> Warranty -> Claim

商品有很多保修,

一项保修属于一项,

保修有很多索赔(因为可以多次索赔,在这里索赔是一个模型,因为它有描述)

一项索赔属于一项保修。

因此,现在我将使用急切的装载来查找每个物品有多少索偿?谢谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

项目有很多保修

保修有很多声明

现在您想获得特定项目的索赔。然后,您需要在“索赔模型”中建立另一个关系,因为已经通过

class Item extends Model
{
    /**
     * Get all of the claim for the item.
     */
    public function claims()
    {
        return $this->hasManyThrough('App\Claim', 'App\Warranty');
    }
}

现在在控制器中,您可以使用 withCount 方法进行计数。

$ietms = App\Item::withCount('claims')->get();

详细了解Has Many Through

答案 1 :(得分:0)

急于加载嵌套关系:

 $ietms = App\Item::with('Warranty.Cliam')->get();