[英]Laravel 5 Eloquent relationships between 3 models
我有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.