Welcome to the Cookbook

loading...

6.4.4 Data Integrity

There is no translation yet for this section. Please help out and translate this.. More information about translations

Due to the nature of complex self referential data structures such as trees and linked lists, they can occasionally become broken by a careless call. Take heart, for all is not lost! The Tree Behavior contains several previously undocumented features designed to recover from such situations.

These functions that may save you some time are:

recover(&$model, $mode = 'parent', $missingParentAction = null)

The mode parameter is used to specify the source of info that is valid/correct. The opposite source of data will be populated based upon that source of info. E.g. if the MPTT fields are corrupt or empty, with the $mode 'parent' the values of the parent_id field will be used to populate the left and right fields. The missingParentAction parameter only applies to "parent" mode and determines what to do if the parent field contains an id that is not present.

reorder(&$model, $options = array())

Reorders the nodes (and child nodes) of the tree according to the field and direction specified in the parameters. This method does not change the parent of any node.

The options array contains the values 'id' => null, 'field' => $model->displayField, 'order' => 'ASC', and 'verify' => true, by default.

verify(&$model)

Returns true if the tree is valid otherwise an array of (type, incorrect left/right index, message).