cakephp-1.3 > TreeBehavior :: recover()
A AclBase AclBehavior AclComponent AclNode AclShell Aco AcoAction AjaxHelper ApcEngine ApiShell App AppController AppController AppHelper AppHelper AppModel AppModel Aro AuthComponent B BakeShell BakeTask BehaviorCollection C Cache CacheEngine CacheHelper CakeErrorController CakeLog CakeRoute CakeSchema CakeSession CakeSocket ClassRegistry Component Configure ConnectionManager ConsoleShell ContainableBehavior Controller ControllerTask CookieComponent D DataSource DbAcl DbAclSchema DbConfigTask DboMssql DboMysql DboMysqlBase DboMysqli DboOracle DboPostgres DboSource DboSqlite Debugger Dispatcher E EmailComponent ErrorHandler ErrorHandler ExtractTask F File FileEngine FileLog FixtureTask Folder FormHelper H Helper HtmlHelper HttpSocket I I18n I18nModel i18nSchema I18nShell Inflector IniAcl J JavascriptHelper JqueryEngineHelper JsBaseEngineHelper JsHelper L L10n M MagicDb MagicFileResource MediaView MemcacheEngine Model ModelBehavior ModelTask MootoolsEngineHelper Multibyte N NumberHelper O Object Overloadable Overloadable Overloadable2 Overloadable2 P PagesController PagesController PaginatorHelper Permission PluginShortRoute PluginTask ProjectTask PrototypeEngineHelper R RequestHandlerComponent Router RssHelper S Sanitize Scaffold ScaffoldView SchemaShell Security SecurityComponent SessionComponent SessionHelper SessionsSchema Set Shell ShellDispatcher String T TemplateTask TestSuiteShell TestTask TextHelper ThemeView TimeHelper TranslateBehavior TreeBehavior V Validation View ViewTask X XcacheEngine Xml XmlElement XmlHelper XmlManager XmlNode XmlTextNode

recover

line:569 at /cake/libs/model/behaviors/tree.php
Recover a corrupted tree

Method

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

Parameters

ParameterTypeCommentDefault
$Model AppModel required Model instance
$mode string optional parent or tree 'parent'
$missingParentAction mixed optional 'return' to do nothing and return, 'delete' to delete, or the id of the parent to set as the parent_id null

Return

boolean

Comment

Recover a corrupted tree

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.

@todo Could be written to be faster, *maybe*. Ideally using a subquery and putting all the logic burden on the DB.
@param AppModel $Model Model instance
@param string $mode parent or tree
@param mixed $missingParentAction 'return' to do nothing and return, 'delete' to
delete, or the id of the parent to set as the parent_id
@return boolean true on success, false on failure
@access public
@link http://book.cakephp.org/view/1628/Recover