假设我有一个名为categories的表,它在 CakePHP 3 应用程序中使用 Tree Behavior。如果给我一个 Category id,是否有允许我检查 Category 是否是父 Category 或函数来获取节点的父 Category 而无需执行多个查找查询的功能?
我在网上找不到任何东西。
谢谢你的帮助
假设我有一个名为categories的表,它在 CakePHP 3 应用程序中使用 Tree Behavior。如果给我一个 Category id,是否有允许我检查 Category 是否是父 Category 或函数来获取节点的父 Category 而无需执行多个查找查询的功能?
我在网上找不到任何东西。
谢谢你的帮助
TreeBehavior 使用parent_id
字段,因此您可以准备名为ParentCategories
和的关系ChildrenCategories
。
$this->belongsTo('ParentCategories', [
'className' => 'Categories',
'foreignKey' => 'parent_id',
]);
$this->hasMany('ChildrenCategories', [
'className' => 'Categories',
'foreignKey' => 'parent_id',
]);
已经有一个路径查找器可用于查找特定节点/id 的完整路径。使用它,您可以获得父节点,如下所示:
$completePath = $this->Model->find('path', ['for' => $category_id])->first();
$parentNode = $completePath['id'];
进一步参考:https ://github.com/cakephp/cakephp/issues/12539
希望这会有所帮助!