如何在 laravel 中处理多级一对多关系
How to handle multiple levels of one-to-many relationships in laravel
我的 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;
但我不知道该怎么做。帮助将不胜感激。
嘿艾哈迈德
你需要的是hasManyThrough关系的使用:
Category:
public function posts(){
return $this->hasManyThrough('App\Posts', 'App\Subcategory');
}
那么你可以这样使用它:
$posts = $category->posts;
我的 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;
但我不知道该怎么做。帮助将不胜感激。
嘿艾哈迈德
你需要的是hasManyThrough关系的使用:
Category:
public function posts(){
return $this->hasManyThrough('App\Posts', 'App\Subcategory');
}
那么你可以这样使用它:
$posts = $category->posts;