php - Laravel 数据透视表与关系列分组
问题描述
型号项目:
public function addons()
{
return $this->belongsToMany(Addon::class);
}
模型插件:
public function items()
{
return $this->belongsToMany(Item::class);
}
模型插件类别:
public function addons()
{
return $this->hasMany('App\Addon');
}
我有一个数据透视表addon_item
(包含 id、addon_id 和 item_id 列)
我想要实现的目标: 包含按 AddonCategories 分组的所有插件的项目集合
像这样的东西:
{
"id": "1",
"name": "Item 1",
"addon_categories": [{
"id": 1,
"name": "Addon Category 1",
"addons": [{
"id": 1,
"name": "Addon 1"
}, {
"id": 2,
"name": "Addon 2"
}]
}]
}
到目前为止我已经尝试过:
$items = Item::with('addons.addon_category')
->with(array('addons' => function ($query) {
$query->where('is_active', 1);
}))
->get();
(我在 addons.addon_category 中尝试了闭包函数和 $query->groupBy - 没用 - 可能是因为我的方法不正确) 我用上面的代码得到的输出:
{
"id": "1",
"name": "Item 1",
"addons": [{
"id": "1",
"name": "Addon 1",
"addon_category_id": "1",
"pivot": {
"item_id": "1",
"addon_id": "1"
},
"addon_category": {
"id": "1",
"name": "Addon Category 1"
}
}, {
"id": "2",
"name": "Addon 2",
"addon_category_id": "1",
"pivot": {
"item_id": "1",
"addon_id": "2"
},
"addon_category": {
"id": "1",
"name": "Addon Category 1"
}
}]
}
解决方案
推荐阅读
- python-3.x - vaex:熊猫 first() 或 last() 等价于什么
- javascript - 我的性格测验有问题
- security - org.bouncycastle.tls.TlsFatalAlertReceived:用于 SOAP Web 服务调用的 internal_error(80)
- python - 我正在编写将二进制数转换为十进制数的代码,这就是我所做的,有人可以告诉我哪里错了,(我进入 Python 1 个月
- java - Hibernate/JPA - 使用@Future 更新还包含日期字段的实体字段
- python - Jupyter Notebook 不想打开
- android - 卡在线性布局中的元素(初学者)
- c++ - C++ 错误:预期的类成员或基类名称 ...int e、int f、string pa、string direct、string distrib):公共视频
- r - 在 R 中将具有 ASCII 实体名称的 XML 转换为基本 XML
- swift - Swift 泛型子类型总是返回父级