【发布时间】:2019-09-01 14:31:14
【问题描述】:
我有多个具有多对多关系的模型
这是模型
- 新闻栏目
- 类别
- 子类别
- 已获批准的新闻
- 待定新闻
每个新闻版块可以有多个类别。
每个类别可以有多个子类别。
每个子类别可以有多个已批准新闻和待处理新闻。
我想要新闻,其中包含类别、子类别和待处理/批准新闻
诸如此类的东西
类别,带有子类别和批准新闻
我尝试使用数据透视表但无法获得结果
型号如下
新闻栏目
class NewsSection extends Model
{
public function categories()
{
return $this->belongsToMany(Category::class);
}
}
类别
class Category extends Model
{
public function subcats(){
return $this->belongsToMany(SubCategory::class);
}
public function newssections(){
return $this->belongsToMany(NewsSection::class);
}
}
子类别
class SubCategory extends Model
{
public function category(){
return $this->belongsTo(Category::class);
}
public function approvednews(){
return $this->belongsToMany(ApprovedNews::class);
}
public function pendingnews(){
return $this->belongsToMany(PendingNews::class);
}
}
已获批准的新闻
class ApprovedNews extends Model
{
public function subcategories (){
return $this->belongsToMany(SubCategory::class);
}
}
待定新闻
class PendingdNewsextends Model
{
public function subcategories (){
return $this->belongsToMany(SubCategory::class);
}
}
更新 这是我到目前为止所做的
$news =Category::with('subcats.approvednews')->where('id',1)->get();
我得到了所有带有子类别和类别的已批准新闻
如果我这样做,我如何修改它以获取每个类别的特定子目录和批准的新闻
$news =Category::with('subcats.approvednews')->where('subcats.id',1)->get();
我收到类似 id ambiguous 的错误
是否可以从关系中挑选项目,例如为 的每个 subcat 只返回 2 个 subcats 和 3 个已批准的新闻 >所选类别
或
获取每个subcat和类别的已批准新闻和待定新闻计数
提前致谢
【问题讨论】:
-
你遇到的实际问题是什么?
-
当我尝试获得任何类别的批准新闻时,我得到的所有项目都返回我这样做 $items=Category::with('subcategory')->where('id',1)- >get();相反,它没有获得类别或主要部分
-
你能用一个具体的代码示例来更新这个问题吗?你正在尝试做什么以及你得到了什么?
-
@Rao 当你在做
$items=Category::with('subcategory')->where('id',1)->get();时,你是想获取 id 为 1 的类别,还是子类别为 1 的类别? -
请看更新
标签: laravel eloquent pivot many-to-many relation