php - 在 CakePHP 中手动构建树

标签 php cakephp tree

我目前正在使用 CakePHP 构建一个应用程序。有一个相当广泛的现有数据集,它在概念上是一棵树,但以前没有作为一个树存储。我的意思是,数据中没有定义真正的关系。

我遇到的问题是让它与 CakePHP 树行为一起正常工作。因为我必须在现有数据上设置所有值——而不是 Cake 在插入元素时设置结构——我需要了解 lft/rght 值是如何工作的。

所以,我想问题是:

结构数据如何工作,特别是左/右值?我如何设置它以便数据合理地输出,而不是一次插入一个?这是一个 2 级树,包含部分和子部分。

感谢帮助

最佳答案

MPTT 树逻辑相当简单,在 Managing Hierarchical Data in MySQL 中有很好的解释。 .总之,每个条目都有一个左值和一个右值。左/右值在另一个条目左右范围内的每个条目都是该(后者)元素的后代。例如。 LCD 节点 (5/6) 在其父节点 Televisions (2-9) 的范围内。

alt text
(来源:mysql.com)

要为"new"树构建 lft/right 值,只需正确设置所有 parent_ids 并运行 $this->Model->recover()在上面。 Cake 会为您计算左/右值。

关于php - 在 CakePHP 中手动构建树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1830205/

相关文章:

php - 用户提交表单后获取 Id 时出现问题

php - 在一个 id 中存储多个值

cakephp - 如何在CakePHP 3.x中保存belongsToMany以进行编辑操作?

regex - 使用正则表达式搜索文件的 Cakephp 文件和文件夹类

php - CakePHP 命名约定/文件结构

algorithm - 序列化有助于将哈夫曼树存储到文件中吗

javascript - 如何让 child 进入圆形 map

php - 将年份添加到日期重置为 1970-01-01

c - c中的二叉树

php - Laravel 5 PDO 错误