我的laravel 5.3应用程序中有三个模型,关系如下
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;
但我不知道该怎么做。帮助将不胜感激。
答案 0 :(得分:3)
嘿艾哈迈德
您需要的是使用hasManyThrough关系:
Category:
public function posts(){
return $this->hasManyThrough('App\Posts', 'App\Subcategory');
}
然后你可以像这样使用它:
$posts = $category->posts;