Cakephp TreeBehaviour和parent_it varchar的缺失功能(36)

时间:2015-04-10 12:24:33

标签: cakephp tree uuid

我出于安全原因使用加密的ID,因此我使用varchar 36的内置函数来代替自动增量整数。

在我想使用树行为之前,它运行良好。

问题:

树结构在数据库中使用“ lft ”和“ rght ”列,以便定位子元素和渲染树列表。当我尝试将parent_id保存为 varchar 36 (5527be8e-1760-4fe4-89e5-54d811150b76)时。我收到错误 - 蛋糕正在尝试 +2上面的字符串ID ,这不会计算,因为很明显我们无法将数字添加到字符串值

enter image description here

我很乐意通过改进CakePHP TreeBehaviour.php来很好地解决这个问题

1 个答案:

答案 0 :(得分:1)

当然你可以在字符串上+ 2,它只是不会给你预期的结果,lftrght应该总是整数,他们有与主键无关,只与树顺序有关。

但是,字符串上的+不会触发该错误,更可能来自

... >= AND NOT ...

一部分。

如果您正确使用lftrght字段的整数,您可以在GitHub上report this as an issue结束,而您所做的就是更改parent_id字段使用UUID。