Получить родительский узел в Tree cakephp 3

скажем, у меня есть таблица под названием категории который использует поведение дерева в приложении CakePHP 3. Если мне дается идентификатор категории, существуют ли функции, позволяющие мне проверить, является ли категория родительской категорией или функциями для получения родительской категории узла без необходимости выполнять несколько запросов поиска?

Я не мог ничего найти в Интернете.

Спасибо за любую помощь

0

Решение

Использование TreeBehavior parent_id Вы можете подготовить отношения по имени ParentCategories а также ChildrenCategories,

$this->belongsTo('ParentCategories', [
'className' => 'Categories',
'foreignKey' => 'parent_id',
]);

$this->hasMany('ChildrenCategories', [
'className' => 'Categories',
'foreignKey' => 'parent_id',
]);
1

Другие решения

В соответствии с Cakephp 3

уже есть Дорожка Доступен искатель, чтобы найти полный путь для определенного узла / идентификатора.
Используя это, вы можете получить родительский узел, как показано ниже:

$completePath = $this->Model->find('path', ['for' => $category_id])->first();
$parentNode = $completePath['id'];

Дальнейшая ссылка: https://github.com/cakephp/cakephp/issues/12539

Надеюсь, это поможет!

0