簡體   English   中英

Laravel 5 3個模型之間的雄辯關系

[英]Laravel 5 Eloquent relationships between 3 models

我有3種型號:

  1. 父親
  2. 兒子
  3. 孫子

這種關系是顯而易見的,父親可以有很多兒子,兒子可以有很多孫子。

我要實現的是找出一個父親有多少個孫子

我知道要找出他有幾個兒子,我必須使用這個:

Father::find(1)->sons->count();

但是我怎么知道他有多少個孫子呢?

如果您不想循環遍歷Sons,則可以在父親模型上定義hasManyThrough關系,如下所示:

class Father
{
    public function grandsons()
    {
        return $this->hasManyThrough('GrandSon', 'Son');
    }
}

檢查此處以供參考: http : //laravel.com/docs/5.1/eloquent-relationships#has-many-through

除了@jsphpl的答案,您還可以繼續鏈接,但使用方法而不是屬性調用。

Father::find(1)->sons()->grandsons()->grandgrandsons()->count();

這是因為sons()返回一個關系而不是一個集合,所以grandsons()將繼續從該sons()查詢中構建查詢。 同樣適用於grandgrandsons()

暫無
暫無

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

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