laravel - Laravel - 没有一些数据的递归关系
问题描述
我正在使用 3 个模型,它们是 Panel、Item 和 PanelContent。PanelContent 有 3 个属性:
- parent_id(谁是小组成员)
- contentable_id(谁是面板或项目)
- contentable_type(定义孩子是面板还是项目)
我想递归地循环我的关系以将我的数据作为一棵树。为此,我编写了以下函数:
面板内容:
public function contentable(): MorphTo
{
return $this->morphTo();
}
public function contentables()
{
return $this->contentable()->with('allContents');
}
控制板 :
public function contents(): HasMany
{
return $this->hasMany(PanelContent::class, 'parent_id')->orderBy('order');
}
public function allContents()
{
return $this->contents()->with('contentables');
}
当我调用“allContents”时,它正在工作,但我有一些我不想保留的数据。
dd($parentPanel->allContents->toArray());
给我这个结果:
在这里,我有 Panel、Item 和 PanelContent 的所有数据,但我不想获取 PanelContent 数据,这只是一个设置 Panel 和 Item 之间所有关系的表。
即使我将 PanelContent 用于关系,您是否有想法只保留 Panel 和 Item 数据?
非常感谢,祝您有个愉快的夜晚。
解决方案
推荐阅读
- html - 在选择 angularjs 中为选定选项设置颜色
- javascript - 以 2D 格式更改 JSON 反应原生
- c# - JsonConvert.DeserializeObject 返回 null asp.net 核心
- javascript - 如何用另一个数组值过滤数组
- lua - 我正在制作一个 roblox 游戏,当您单击底板时需要更新排行榜统计信息
- php - PHP没有执行
- java - 休眠:无法使用外键查询数据库表
- excel - 用于查找波高 <3m 且时间在上午 5:00 到下午 6:00 之间的持续时间的功能
- google-apps-script - 日历同步 - 安装 onEventUpdated 触发器
- multithreading - Delphi TMonitor.Wait 多线程问题