在CakePHP树中查找子树

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在CakePHP树中查找子树脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在Cake PHP中,如何仅选择作为树的模型中的子树?

我试过这个,找到带有label =“My Label”的项目为首的树

$this->find("threaded",array(
    "condITions" => array(
        "label" => "My Label"
    )
));

…但是看着日志,它会运行这个sql

SELECT Menu.id,Menu.parent_id,Menu.lft,Menu.rght,Menu.label,Menu.link
From menus Menu
WHERE label = 'My Label'

这显然只选择一个节点,而不是所有子节点.

看来你必须分两步这样做(从 the manual开始):
$parent = $this->Category->find('First',array(
    'conditions' => array('label' => 'My label')
));
$parentAndChildren = $this->Category->find('threaded',array(
    'conditions' => array(
        'Category.lft >=' => $parent['Category']['lft'],'Category.rght <=' => $parent['Category']['rght']
    )
));

你不能使用’label’=>线程调用中的“我的标签”条件,因为它只会找到符合该条件的结果,父母和子女. ‘threaded’只根据parent_id重新排列正常查找操作的结果,因此你必须使用lft / rght列提供你自己的“孩子”条件.

脚本宝典总结

以上是脚本宝典为你收集整理的在CakePHP树中查找子树全部内容,希望文章能够帮你解决在CakePHP树中查找子树所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。