我出于安全原因使用加密的ID,因此我使用varchar 36的内置函数来代替自动增量整数。
在我想使用树行为之前,它运行良好。
问题:
树结构在数据库中使用“ lft ”和“ rght ”列,以便定位子元素和渲染树列表。当我尝试将parent_id保存为 varchar 36 (5527be8e-1760-4fe4-89e5-54d811150b76)时。我收到错误 - 蛋糕正在尝试 +2上面的字符串ID ,这不会计算,因为很明显我们无法将数字添加到字符串值。
我很乐意通过改进CakePHP TreeBehaviour.php来很好地解决这个问题
答案 0 :(得分:1)
当然你可以在字符串上+ 2
,它只是不会给你预期的结果,lft
和rght
应该总是整数,他们有与主键无关,只与树顺序有关。
但是,字符串上的+
不会触发该错误,更可能来自
... >= AND NOT ...
一部分。
如果您正确使用lft
和rght
字段的整数,您可以在GitHub上report this as an issue结束,而您所做的就是更改parent_id
字段使用UUID。