cakephp-2.0 > TreeBehavior :: recover()
A AbstractTransport AclBehavior AclComponent AclInterface AclNode AclShell Aco AcoAction ActionsAuthorize ApcEngine ApiShell App AppController AppController AppHelper AppHelper AppModel AppModel AppShell Aro AuthComponent B BadRequestException BakeShell BakeTask BaseAuthenticate BaseAuthorize BasicAuthenticate BasicAuthentication BehaviorCollection C Cache CacheEngine CacheException CacheHelper CacheSession CakeEmail CakeErrorController CakeException CakeLog CakeLogException CakeLogInterface CakePlugin CakeRequest CakeResponse CakeRoute CakeSchema CakeSession CakeSessionException CakeSessionHandlerInterface CakeSocket ClassRegistry CommandListShell Component ComponentCollection ConfigReaderInterface Configure ConfigureException ConnectionManager ConsoleErrorHandler ConsoleException ConsoleInput ConsoleInputArgument ConsoleInputOption ConsoleInputSubcommand ConsoleOptionParser ConsoleOutput ConsoleShell ContainableBehavior Controller ControllerAuthorize ControllerTask CookieComponent CrudAuthorize D DatabaseSession DataSource DbAcl DbAclSchema DbConfigTask DboSource Debugger DebugTransport DigestAuthenticate DigestAuthentication Dispatcher E EmailComponent ErrorHandler ExceptionRenderer ExtractTask F File FileEngine FileLog FixtureTask Folder ForbiddenException FormAuthenticate FormHelper H Helper HelperCollection HelpFormatter HtmlHelper HttpException HttpResponse HttpSocket I I18n I18nModel i18nSchema I18nShell Inflector IniReader InternalErrorException J JqueryEngineHelper JsBaseEngineHelper JsHelper L L10n M MailTransport MediaView MemcacheEngine MethodNotAllowedException MissingActionException MissingBehaviorException MissingComponentException MissingConnectionException MissingControllerException MissingDatabaseException MissingDatasourceConfigException MissingDatasourceException MissingHelperException MissingLayoutException MissingModelException MissingPluginException MissingShellException MissingShellMethodException MissingTableException MissingTaskException MissingTestLoaderException MissingViewException Model ModelBehavior ModelTask MootoolsEngineHelper Multibyte Mysql N NotFoundException NumberHelper O Object ObjectCollection P PagesController PagesController PaginatorComponent PaginatorHelper Permission PhpReader PluginShortRoute PluginTask Postgres PrivateActionException ProjectTask PrototypeEngineHelper R RedirectRoute RequestHandlerComponent Router RouterException RssHelper S Sanitize Scaffold ScaffoldView SchemaShell Security SecurityComponent SessionComponent SessionHelper SessionsSchema Set Shell ShellDispatcher SmtpTransport SocketException Sqlite Sqlserver String T TaskCollection TemplateTask TestsuiteShell TestTask TextHelper ThemeView TimeHelper TranslateBehavior TreeBehavior U UnauthorizedException UpgradeShell V Validation View ViewTask W WincacheEngine X XcacheEngine Xml XmlException

recover

line:557 at /lib/Cake/Model/Behavior/TreeBehavior.php
Recover a corrupted tree

Method

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

Parameters

ParameterTypeCommentDefault
$Model Model 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 Model $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
@link http://book.cakephp.org/2.0/en/core-libraries/behaviors/tree.html#TreeBehavior::recover