CakePHP 的等价物 2.x CakePHP 的树行为中的 `getPath()` 3.x
Equivalent of CakePHP 2.x `getPath()` in Tree Behaviour for CakePHP 3.x
在 CakePHP 2.x 中,Tree Behaviour 上有一个名为 getPath()
的方法,它允许您从树的顶部获取给定节点的路径。
例如 $this->Navigation->getPath(33)
给我一个数组,显示如何从顶部到达树的节点 33。
我有一些数据已放入 CakePHP 2.x 中构建的应用程序中,但是另一个应用程序是 CakePHP 3.x 中构建的并且需要读取此数据。
我已将 3.x 应用程序配置如下:
// src/Model/Table/NavigationsTable.php
namespace App\Model\Table;
use Cake\ORM\Table;
class NavigationsTable extends Table {
public function initialize(array $config)
{
$this->addBehavior('Tree');
}
}
控制器正在尝试使用 getPath()
方法:
// in src/Controller/NavigationsController.php
$Navigations = TableRegistry::get('Navigations');
$nav_query = $Navigations->getPath(33);
debug($nav_query);
这会给出一条错误消息:
未知方法"getPath"
我认为这是因为 getPath()
不在 CakePHP 3.x 的树行为中。是否有一些等效的功能可以做到这一点?我在文档中看不到它。
路径检索已移至查找器中,path
查找器:
$nav_query = $Navigations->find('path', ['for' => 33]);
另见
在 CakePHP 2.x 中,Tree Behaviour 上有一个名为 getPath()
的方法,它允许您从树的顶部获取给定节点的路径。
例如 $this->Navigation->getPath(33)
给我一个数组,显示如何从顶部到达树的节点 33。
我有一些数据已放入 CakePHP 2.x 中构建的应用程序中,但是另一个应用程序是 CakePHP 3.x 中构建的并且需要读取此数据。
我已将 3.x 应用程序配置如下:
// src/Model/Table/NavigationsTable.php
namespace App\Model\Table;
use Cake\ORM\Table;
class NavigationsTable extends Table {
public function initialize(array $config)
{
$this->addBehavior('Tree');
}
}
控制器正在尝试使用 getPath()
方法:
// in src/Controller/NavigationsController.php
$Navigations = TableRegistry::get('Navigations');
$nav_query = $Navigations->getPath(33);
debug($nav_query);
这会给出一条错误消息:
未知方法"getPath"
我认为这是因为 getPath()
不在 CakePHP 3.x 的树行为中。是否有一些等效的功能可以做到这一点?我在文档中看不到它。
路径检索已移至查找器中,path
查找器:
$nav_query = $Navigations->find('path', ['for' => 33]);
另见