Класс TreeBehavior
Поведение дерева.
Позволяет объекту модели действовать как узловое дерево. Используется модифицированный обход дерева по методу предварительного обхода.
- CakeObject
-
ModelBehavior
-
TreeBehavior
См.: http://ru.wikipedia.org/wiki/Обход_дерева
Ссылка: https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT Лицензия
Расположение: Cake/Model/Behavior/TreeBehavior.php
Краткое описание свойств
-
$_defaultsprotectedЗначения по умолчаниюarray -
$_deletedRowprotectedИспользуется для сохранения состояния между вызовами удаления.array -
$errorspublicОшибкиarray
Унаследованные свойства
Краткое описание методов
- _getMax() protectedПолучить максимальное значение индекса в таблице.
- _getMin() protectedПолучить минимальное значение индекса в таблице.
- _getNode() protectedВозвращает один узел из дерева по его первичному ключу
- _getOptions() protected
Удобный метод для создания стандартных опций find() из $arg, если это ассоциативный массив.
- _recoverByParentId() protected_recoverByParentId
- _setChildrenLevel() protectedУстановить уровень для потомков.
- _setParent() protectedУстанавливает родителя заданного узла
- _sync() protectedМетод синхронизации таблицы.
- afterDelete() publicМетод после удаления.
- afterSave() publicМетод после сохранения. Вызывается после всех сохранений
- beforeDelete() publicСохраняет запись, которая должна быть удалена.
- beforeFind() publicВыполняется перед операцией find()
- beforeSave() publicМетод перед сохранением. Вызывается перед всеми сохранениями
- childCount() publicПолучить количество дочерних узлов
- children() publicПолучить дочерние узлы текущей модели
- formatTreeList() publicФорматирует результат вызова find() в иерархический массив, используемый для HTML-списков выбора.
- generateTreeList() publicУдобный метод для возврата иерархического массива, используемого для HTML-списков выбора
- getLevel() publicВозвращает уровень глубины узла в дереве.
- getParentNode() publicПолучить родительский узел
- getPath() publicПолучить путь к заданному узлу
- moveDown() publicПереупорядочить узел без изменения родителя.
- moveUp() publicПереупорядочить узел без изменения родителя.
- recover() publicВосстановить поврежденное дерево
- removeFromTree() publicУдалить текущий узел из дерева и переместить всех потомков на один уровень выше.
- reorder() publicМетод переупорядочивания.
- setup() publicИнициализировать поведение дерева
- verify() publicПроверить, является ли текущее дерево валидным.
Подробное описание методов
_getMax()source protected
_getMax( Model $Model , string $scope , string $right , integer $recursive -1 , boolean $created false )
Получить максимальное значение индекса в таблице.
Параметры
-
Model$Model - Экземпляр модели.
- строка
$scope - Условие фильтрации.
- строка
$right - Правое значение
- целое число
$recursiveнеобязательно -1 - Значение для рекурсивного поиска.
- логическое значение
$createdнеобязательно false - Является ли это новой записью.
Возвращает
целое число_getMin()source protected
_getMin( Model $Model , string $scope , string $left , integer $recursive -1 )
Получить минимальное значение индекса в таблице.
Параметры
-
Model$Model - Экземпляр модели.
- строка
$scope - Условие фильтрации.
- строка
$left - Левое значение.
- целое число
$recursiveнеобязательно -1 - Значение для рекурсивного поиска.
Возвращает
целое число_getNode()source protected
_getNode( Model $Model , integer|string $id )
Возвращает один узел из дерева по его первичному ключу
Параметры
-
Model$Model - Модель, использующая это поведение
- целое число|строка
$id - Идентификатор записи для чтения
Возвращает
массив|логическое значениеПрочитанная запись или false
_getOptions()source protected
_getOptions( array $arg )
Удобный метод для создания стандартных опций find() из $arg, если это ассоциативный массив.
Параметры
- массив
$arg - Массив
Возвращает
массивМассив опций
_recoverByParentId()source protected
_recoverByParentId( Model $Model , integer $counter 1 , integer|string|null $parentId null )
_recoverByParentId
Вспомогательная рекурсивная функция, используемая функцией recover
Параметры
-
Model$Model - Экземпляр модели.
- целое число
$counterнеобязательно 1 - Счётчик
- целое число|строка|null
$parentIdнеобязательно null - Идентификатор записи родителя
Возвращает
целое числоСчётчик
_setChildrenLevel()source protected
_setChildrenLevel( Model $Model , integer|string $id )
Установить уровень для потомков.
Параметры
-
Model$Model - Модель, использующая это поведение.
- целое число|строка
$id - Идентификатор записи
_setParent()source protected
_setParent( Model $Model , integer|string|null $parentId null , boolean $created false )
Устанавливает родителя для заданного узла
Параметр force используется для переопределения логики "не изменять родителя на текущего родителя" в случае восстановления поврежденной таблицы или создания новых узлов. В противном случае он должен всегда быть false. На самом деле этот метод мог бы быть приватным, так как вызов save с установленным parent_id также вызывает setParent
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string|null
$parentIdнеобязательно null - ID родительской записи
- boolean
$createdнеобязательно false - True, если запись вновь создана, иначе false.
Возвращает
booleantrue при успехе, false при ошибке
_sync()source protected
_sync( Model $Model , integer $shift , string $dir '+' , array $conditions array() , boolean $created false , string $field 'both' )
Метод синхронизации таблицы.
Обрабатывает операции синхронизации таблицы, учитывая область действия бихевиора.
Параметры
-
Model$Model - Экземпляр модели.
- integer
$shift - Смещение.
- string
$dirнеобязательно '+' - Направление.
- array
$conditionsнеобязательно array() - Условий.
- boolean
$createdнеобязательно false - Является ли запись новой.
- string
$fieldнеобязательно 'both' - Тип поля.
afterDelete()source public
afterDelete( Model $Model )
Метод после удаления.
Удалит текущий узел и всех потомков с помощью метода deleteAll и синхронизирует таблицу
Параметры
-
Model$Model - Модель, использующая этот бихевиор
Возвращает
booleantrue для продолжения, false для прерывания удаления
Переопределяет
ModelBehavior::afterDelete() afterSave()source public
afterSave( Model $Model , boolean $created , array $options array() )
Метод после сохранения. Вызывается после всех сохранений
Переопределен для прозрачного управления настройкой полей lft и rght, только если поле parent включено в параметры для сохранения.
Параметры
-
Model$Model - Модель, использующая этот бихевиор.
- boolean
$created - указывает, был ли сохранённый узел создан или обновлен
- array
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращает
booleantrue при успехе, false при ошибке
Переопределяет
ModelBehavior::afterSave() beforeDelete()source public
beforeDelete( Model $Model , boolean $cascade true )
Сохраняет запись, которая собирается быть удаленной.
Используется для удаления дочерних узлов в послеудаления.
Параметры
-
Model$Model - Модель, использующая этот бихевиор.
- boolean
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
booleanПереопределяет
ModelBehavior::beforeDelete() beforeFind()source public
beforeFind( Model $Model , array $query )
Выполняется перед операцией find()
Параметры
-
Model$Model - Модель, использующая бихевиор
- array
$query - Параметры запроса, заданные cake
Возвращает
arrayПереопределяет
ModelBehavior::beforeFind() beforeSave()source public
beforeSave( Model $Model , array $options array() )
Метод перед сохранением. Вызывается перед всеми сохранениями
Переопределен для прозрачного управления настройкой полей lft и rght, только если поле parent включено в параметры для сохранения. Для вновь созданных узлов БЕЗ родителя значения полей left и right устанавливаются непосредственно этим методом, минуя логику setParent.
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- array
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращает
booleantrue для продолжения, false для прерывания сохранения
См.
Model::save()Переопределяет
ModelBehavior::beforeSave() childCount()source public
childCount( Model $Model , integer|string|boolean $id null , boolean $direct false )
Получить количество дочерних узлов
Если параметр direct установлен в true, считаются только непосредственные дочерние узлы (на основе поля parent_id). Если для параметра id передано false, считаются все узлы верхнего уровня, или все узлы.
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string|boolean
$idнеобязательно null - ID записи для чтения или false для чтения всех узлов верхнего уровня
- boolean
$directнеобязательно false - считать прямые или все дочерние узлы
Возвращает
integerколичество дочерних узлов
Ссылка
https://book.cakephp.org/2.0/en/core-libraries/behaviors/tree.html#TreeBehavior::childCountchildren()source public
children( Model $Model , integer|string $id null , boolean $direct false , string|array $fields null , string $order null , integer $limit null , integer $page 1 , integer $recursive null )
Получить дочерние узлы текущей модели
Если параметр direct установлен в true, возвращаются только непосредственные дочерние узлы (на основе поля parent_id). Если для параметра id передано false, считаются узлы верхнего уровня или все (в зависимости от параметра direct).
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string
$idнеобязательно null - ID записи для чтения
- boolean
$directнеобязательно false - возвращать только прямые или все дочерние узлы
- string|array
$fieldsнеобязательно null - либо одно строковое имя поля, либо массив имён полей
- string
$orderнеобязательно null - SQL условие ORDER BY (например, "price DESC" или "name ASC"), по умолчанию используется порядок дерева
- integer
$limitнеобязательно null - SQL фрагмент LIMIT, для расчета элементов на странице.
- integer
$pageнеобязательно 1 - Номер страницы для доступа к постраничным данным
- integer
$recursiveнеобязательно null - Глубина уровней вложенности для получения связанных записей
Возвращает
arrayМассив дочерних узлов
Ссылка
https://book.cakephp.org/2.0/en/core-libraries/behaviors/tree.html#TreeBehavior::childrenformatTreeList()source public
formatTreeList( Model $Model , array $results , array $options array() )
Форматирует результат вызова find() в иерархический массив, используемый для HTML выпадающих списков.
Обратите внимание, что при использовании собственного вызова find(), ожидается, что порядок будет "left" поле по возрастанию, чтобы получить тот же результат, что и при непосредственном использовании generateTreeList().
Опции:
- 'keyPath': Строковый путь к ключу, например "{n}.Post.id"
- 'valuePath': Строковый путь к значению, например "{n}.Post.title"
- 'spacer': Символ или символы, которые будут повторяться
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- array
$results - Массив результатов вызова find()
- array
$optionsнеобязательно array() - Опции
Возвращает
arrayАссоциативный массив записей, где id является ключом, а поле отображения является значением
generateTreeList()source public
generateTreeList( Model $Model , string|array $conditions null , string $keyPath null , string $valuePath null , string $spacer '_' , integer $recursive null )
Удобный метод для возвращения иерархического массива, используемого для HTML-выпадающих списков
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- string|array
$conditionsнеобязательно null - SQL-условия в виде строки или массива ('поле' =>'значение',...)
- string
$keyPathнеобязательно null - Путь к ключу, например, "{n}.Post.id"
- string
$valuePathнеобязательно null - Путь к значению, например, "{n}.Post.title"
- string
$spacerнеобязательно '_' - Символ или символы, которые будут повторяться
- integer
$recursiveнеобязательно null - Глубина вложенности для извлечения связанных записей
Возвращаемое значение
arrayАссоциативный массив записей, где id — ключ, а поле отображения — значение
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::generateTreeListgetLevel()source public
getLevel( Model $Model , integer|string|null $id null )
Возвращает уровень вложенности узла в дереве.
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string|null
$idнеобязательно null - Первичный ключ записи, для которой нужно получить уровень.
Возвращаемое значение
integer|booleanЦелое значение уровня или false, если узел не существует.
getParentNode()source public
getParentNode( Model $Model , integer|string $id null , string|array $fields null , integer $recursive null )
Получить родительский узел
считывает родительский id и возвращает этот узел
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string
$idнеобязательно null - ID записи для чтения
- string|array
$fieldsнеобязательно null - Поля для получения
- integer
$recursiveнеобязательно null - Глубина вложенности для извлечения связанных записей
Возвращаемое значение
array|booleanМассив данных для родительского узла
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::getParentNodegetPath()source public
getPath( Model $Model , integer|string|null $id null , string|array|null $fields null , integer|null $recursive null )
Получить путь к заданному узлу
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string|null
$idнеобязательно null - ID записи для чтения
- string|array|null
$fieldsнеобязательно null - Имя одного поля или массив имён полей
- integer|null
$recursiveнеобязательно null - Глубина вложенности для извлечения связанных записей
Возвращаемое значение
arrayМассив узлов от самого верхнего родителя до текущего узла
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::getPathmoveDown()source public
moveDown( Model $Model , integer|string|null $id null , integer|boolean $number 1 )
Переместить узел вниз, не изменяя родителя.
Если узел является последним потомком или является узлом верхнего уровня без последующего узла, этот метод вернёт false.
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string|null
$idнеобязательно null - ID записи для перемещения
- integer|boolean
$numberнеобязательно 1 - Количество позиций для перемещения узла или true для перемещения в последнюю позицию
Возвращаемое значение
booleantrue при успехе, false при ошибке
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::moveDownmoveUp()source public
moveUp( Model $Model , integer|string|null $id null , integer|boolean $number 1 )
Переместить узел вверх, не изменяя родителя.
Если узел является первым потомком или является узлом верхнего уровня без предыдущего узла, этот метод вернёт false.
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string|null
$idнеобязательно null - ID записи для перемещения
- integer|boolean
$numberнеобязательно 1 - Количество позиций для перемещения узла или true для перемещения в первую позицию
Возвращаемое значение
booleantrue при успехе, false при ошибке
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::moveUprecover()source public
recover( Model $Model , string $mode 'parent' , string|integer|null $missingParentAction null )
Восстановить поврежденное дерево
Параметр mode используется для указания источника информации, который является допустимым/корректным. Противоположный источник данных будет заполнен на основе этого источника информации. Например, если поля MPTT повреждены или пусты, с помощью $mode 'parent' будут использоваться значения поля parent_id для заполнения полей left и right. Параметр missingParentAction применяется только к режиму "parent" и определяет, что делать, если поле parent содержит id, который отсутствует.
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- string
$modeнеобязательно 'parent' - parent или tree
- string|integer|null
$missingParentActionнеобязательно null 'return' для ничего не делать и вернуть, 'delete' для удаления или id родителя для установки в качестве parent_id
Возвращаемое значение
booleantrue при успехе, false при ошибке
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::recoverremoveFromTree()source public
removeFromTree( Model $Model , integer|string|null $id null , boolean $delete false )
Удалить текущий узел из дерева и переместить всех потомков на уровень выше.
Если параметр delete равен false, узел станет новым узлом верхнего уровня. В противном случае узел будет удален после переродительства потомков (если таковые имеются).
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- integer|string|null
$idнеобязательно null - ID записи для удаления
- boolean
$deleteнеобязательно false - Удалять ли узел после переродительства потомков (если таковые имеются)
Возвращаемое значение
booleantrue при успехе, false при ошибке
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::removeFromTreereorder()source public
reorder( Model $Model , array $options array() )
Метод перестановки.
Переупорядочивает узлы (и дочерние узлы) дерева в соответствии с полем и направлением, указанными в параметрах. Этот метод не изменяет родителя ни одного узла.
Требуется валидное дерево, по умолчанию оно проверяется перед началом.
Параметры:
- 'id' идентификатор записи, используемый в качестве верхнего узла для переупорядочивания
- 'field' Поле, используемое для переупорядочивания, по умолчанию - displayField
- 'order' Направление упорядочивания, либо DESC, либо ASC (по умолчанию ASC)
- 'verify' Выполнять ли проверку дерева перед переупорядочиванием. По умолчанию true.
Параметры
-
Model$Model - Модель, использующая этот бихевиор
- массив
$optionsнеобязательно массив() - массив параметров для переупорядочивания.
Возвращает
booleantrue при успехе, false при ошибке
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::reordersetup()source public
setup( Model $Model , array $config array() )
Инициализация бихевиора Tree
Параметры
-
Model$Model - использующей эту модель бихевиора
- массив
$configнеобязательно массив() - массив конфигураций.
Переопределяет
ModelBehavior::setup() verify()source public
verify( Model $Model )
Проверка валидности текущего дерева.
Возвращает true, если дерево валидно, иначе массив (тип, некорректный левый/правый индекс, сообщение)
Параметры
-
Model$Model - Модель, использующая этот бихевиор
Возвращает
mixedtrue, если дерево валидно или пусто, иначе массив (тип ошибки [индекс, узел], [некорректный левый/правый индекс, id узла], сообщение)
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/behaviors/tree.html#TreeBehavior::verifyМетоды, унаследованные от ModelBehavior
_addToWhitelist()source protected
_addToWhitelist( Model $model , string $field )
Если свойство whitelist модели $model не пустое, $field будет добавлено в него. Примечание: этот метод следует использовать только в beforeValidate или beforeSave, чтобы убедиться, что он изменяет whitelist только для текущей операции сохранения. Также убедитесь, что вы явно устанавливаете значение поля, которое вы разрешаете.
Параметры
-
Model$model - Модель, использующая этот бихевиор
- строка
$field - Поле, которое нужно добавить в whitelist модели $model
afterFind()source public
afterFind( Model $model , mixed $results , boolean $primary false )
Обработчик после поиска. Может использоваться для изменения любых результатов, возвращаемых find.
Параметры
-
Model$model - Модель, использующая этот бихевиор
- смешанный
$results - Результаты операции поиска
- булево
$primaryнеобязательно false - Является ли эта модель запрошенной напрямую (в отличие от запроса в качестве ассоциации)
Возвращает
mixedЗначение массива заменит значение $results – любое другое значение будет проигнорировано.
afterValidate()source public
afterValidate( Model $model )
afterValidate вызывается сразу после проверки данных модели, вы можете использовать этот обработчик для выполнения любых необходимых очищений или подготовки данных.
Параметры
-
Model$model - Модель, использующая этот бихевиор
Возвращает
mixedFalse остановит прохождение этого события другим бихевиорам
beforeValidate()source public
beforeValidate( Model $model , array $options array() )
beforeValidate вызывается перед проверкой модели, вы можете использовать этот обработчик для добавления правил проверки бихевиора в массив validate модели. Возвращение false позволит заставить проверку завершиться неудачей.
Параметры
-
Model$model - Модель, использующая этот бихевиор
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Возвращает
mixedFalse или null прервут операцию. Любое другое значение продолжит выполнение.
См. также
Model::save()cleanup()source public
cleanup( Model $model )
Очистка любых инициализаций, выполненных этим бихевиором в модели. Вызывается при динамическом отсоединении бихевиора от модели с помощью Model::detach().
Параметры
-
Model$model - Модель, использующая этот бихевиор
См. также
BehaviorCollection::detach()onError()source public
onError( Model $model , string $error )
Обработчик ошибок источника данных
Параметры
-
Model$model - Модель, использующая этот бихевиор
- строка
$error - Ошибка, сгенерированная в источнике данных
Методы, унаследованные от CakeObject
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства этого объекта $property со свойством в определении $class. Значение этого класса для свойства будет объединено сверху от $class'
Это обеспечивает часть DRY-магии CakePHP. Если вы хотите это отключить, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойств с.
- булево
$normalizeнеобязательно true - Установите в true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будет устанавливать только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно массив() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Остановка выполнения текущего скрипта. Оборачивает exit(), что облегчает тестирование.
Параметры
- целое число/строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Обеспечивает объектно-ориентированный обертывание для call_user_func_array
Параметры
- строка
$method - Имя метода для вызова
- массив
$paramsнеобязательно массив() - Список параметров для использования при вызове $method
Возвращает
mixedВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Для получения дополнительной информации о записи в журналы, см. CakeLog::write().
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null Область(и), в которой создается сообщение журнала. Для получения дополнительной информации о областях ведения журналов, см. CakeLog::config().
Возвращаемое значение
booleanУспешность записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любого места. Может использоваться для соединения контроллеров или подключения плагинов к основному приложению. requestAction может использоваться для возврата рендеренных представлений или получения возвращаемого значения из действий контроллера.
Внутри этого метода используется Router::reverse() для преобразования параметра $url в строку URL. Следует использовать форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Для данных GET используйте $extra['url']. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url URL на основе строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно array() Если массив включает ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST, а также именованных/переданных аргументов.
Возвращаемое значение
смешанный типЛогическое значение true или false при успехе/неудаче, или содержимое рендерного действия, если в $extra установлен ключ 'return'.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
строкаИмя этого класса
Подробное описание свойств
$_defaultssource
protected массив
Значения по умолчанию
array(
'parent' => 'parent_id', 'left' => 'lft', 'right' => 'rght', 'level' => null,
'scope' => '1 = 1', 'type' => 'nested', '__parentChange' => false, 'recursive' => -1
) $_deletedRowsource
protected массив
Используется для сохранения состояния между вызовами удаления.
array()
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-TreeBehavior.html