我目前正在开展一个项目,我将需要在模型上创建二叉树结构。它类似于“一个人可以有两个朋友。这两个朋友中的每一个都是人,所以他们每个人也可以有两个朋友。”最后,我需要进行深度优先节点搜索。
我想进行最多4级的深度搜索,我也想知道是否有任何级别未完成,例如:
person(root)
person(branch A) person(branch B)
person person person person
person person person person (no children) (only 1 child)person
如您所见,分支A 最多可完成4个级别。但分支B 不是。
我猜测知道哪个分支是完整的以及哪个分支不是使用empty()
上的array
函数进行验证,如:
$person = $this->Person->find('first', $conditions);
if(empty($person['Person']['friend_1']))
$uncomplete = true;
我错过了在这里迭代节点的算法,但我真正需要的是如何检索hasOne
/ belongsTo
的4个深度(不确定是哪一个),是不是设置Model::recursive = 4
?
感谢任何建议,谢谢
答案 0 :(得分:0)
我们没有递归4.递归用于与当前表关联的关联表(其他意思是模型行为),可以在-1到2之间。
还有关于你的表格结构。请在这里阅读蛋糕文件,看看哪一个适合您的餐桌结构。在蛋糕中我们有3种模型结构。例如$ actsAs = Tree或Contaableable或Translate
看看这些问题和文章: