【发布时间】:2011-10-06 17:24:23
【问题描述】:
我遇到了一个相当复杂的问题,我需要树的行为来提供帮助。
我有一个名为nodes 的表,这个表已经有一个树,这个树用来构建一个菜单。
现在我们想让创建多个菜单成为可能,所以我制作了node_menus 和menus 表。所以Nodes hasAndBelongsToMany Menus
但是有一个小问题,菜单已构建但使用$this->Node->find('threaded'),因此子菜单是可能的。所有节点都可以在多个菜单中使用,所有菜单都需要一棵树,因此可以对节点进行排序,也可以创建子菜单。
为此,我正在考虑为每个菜单创建一个包含树的表,并将一个节点链接到树表中的每一行。
所以基本上我需要一个带有Trees belongsTo Nodes 关系的trees 表。在这棵树中,我有字段menu_id、node_id、parent_id、lft 和rght。
现在的问题是,一张表中是否可以有多个树?说,我想要menu_id 为15 的树。是否可以使用带有所述ID 的find('threaded') 来返回所有数据以及与node_id 相关的节点。包括用于创建和操作树的所有其他核心函数。
这可能吗?如果没有,是否有人对如何制作多个菜单有更好的解决方案,其中节点可以放置在可以排序和线程化的多个菜单中?
【问题讨论】:
标签: cakephp tree behavior cakephp-1.2