2016-12-13 31 views
0

我在我的laravel 5.3應用三種模式與作爲關係遵循如何處理一個一對多的關係,多層次的laravel

Category: 

public function subcategories(){ 
    return $this->hasMany('App\Subcategory'); 
} 


Subcategory: 

public function category(){ 
    return $this->belongsTo('App\Category'); 
} 

public function posts(){ 
    return $this->hasMany('App\Posts'); 
} 


Post: 

public function subcategory(){ 
    return $this->belongsTo('App\Subcategory'); 
} 

現在在我的控制器,我只有一個類別,我希望所有在屬於我所擁有的子類別中的帖子(按ID排序)。例如:

$posts = $category->subcategories->posts; 

但我不知道該怎麼做。幫助將不勝感激。

+1

https://開頭laravel。 com/docs/master/eloquent-relationships#has-many-through – mopo922

回答

1

嘿艾哈邁德

你需要的是使用hasManyThrough關係:

Category: 

public function posts(){ 
    return $this->hasManyThrough('App\Posts', 'App\Subcategory'); 
} 

然後你可以使用它像這樣:

$posts = $category->posts; 
+0

工作!非常感謝。 –