问题标签 [transitive-closure-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
10 浏览

laravel - 在 Laravel 中使用 ClosureTable 时如何创建多个父节点的子节点

我想在 Laravel 8 应用程序中使用ClosureTable 。我按照说明进行操作,因此我有两个名为 nodes 和 node_closure 的表,其结构如下,首先是nodes表:

ID parent_id 位置 删除_at
? ? ? ?

表格如下node_closure

闭包ID 祖先 后代 深度
? ? ? ?

我在示例中运行了给定的代码:

它使用以下数据填充表:

在此处输入图像描述在此处输入图像描述

现在当我跑

它给了我:

并运行以下命令:

返回一个空数组[]

(在包的github 页面上的给定示例中,它没有描述或提及在多个节点中使用一个节点,所以我不确定包是否可以实现)

除了这个例子,我还尝试了很多不同的东西,比如

接着:

但它没有按预期工作。我所看到的,当我对列运行任何更新以使其成为另一个父节点的子节点时,它只会更新 parent_id 字段,因此失去对先前父子关系的引用,并且节点不再是父节点的子节点。

是否有可能以某种方式实现我想要实现的目标?那就是通过这个模块使“多对多关系”更容易,其中一个节点可以是多个父节点的子节点。

附言。我实际上有一个商家表,我想在其中创建多个商家的商家子商家。如果有人有更好的想法,那就太好了。我只想坚持 Laravel 的自然关系绑定。