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