我目前正在使用 CakePHP 构建一个应用程序。有一个相当广泛的现有数据集,它在概念上是一棵树,但以前没有作为一个树存储。我的意思是,数据中没有定义真正的关系。
我遇到的问题是让它与 CakePHP 树行为一起正常工作。因为我必须在现有数据上设置所有值——而不是 Cake 在插入元素时设置结构——我需要了解 lft/rght 值是如何工作的。
所以,我想问题是:
结构数据如何工作,特别是左/右值?我如何设置它以便数据合理地输出,而不是一次插入一个?这是一个 2 级树,包含部分和子部分。
感谢帮助
最佳答案
MPTT 树逻辑相当简单,在 Managing Hierarchical Data in MySQL 中有很好的解释。 .总之,每个条目都有一个左值和一个右值。左/右值在另一个条目左右范围内的每个条目都是该(后者)元素的后代。例如。 LCD 节点 (5/6) 在其父节点 Televisions (2-9) 的范围内。
(来源:mysql.com)
要为"new"树构建 lft/right 值,只需正确设置所有 parent_ids
并运行 $this->Model->recover()
在上面。 Cake 会为您计算左/右值。
关于php - 在 CakePHP 中手动构建树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1830205/