首页 > 解决方案 > Laravel - 没有一些数据的递归关系

问题描述

我正在使用 3 个模型,它们是 Panel、Item 和 PanelContent。PanelContent 有 3 个属性:

我想递归地循环我的关系以将我的数据作为一棵树。为此,我编写了以下函数:

面板内容:

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 数据?

非常感谢,祝您有个愉快的夜晚。

标签: laravelrecursioneloquentrelation

解决方案


推荐阅读