'Varchar', 'WriteCount' => 'Int' ]; private static $has_one = [ 'Parent' => self::class, 'Cycle' => self::class, ]; private static $has_many = [ 'Children' => self::class, ]; public function write($showDebug = false, $forceInsert = false, $forceWrite = false, $writeComponents = false) { // Force the component to fetch its Parent and Cycle relation so we have components to recursively write $this->Parent; $this->Cycle; // Count a write attempts $this->WriteCount++; return parent::write($showDebug, $forceInsert, $forceWrite, $writeComponents); } /** * Reset the WriteCount on all TreeNodes */ public function resetCounts() { $update = new SQLUpdate( sprintf('"%s"', self::baseTable()), ['"WriteCount"' => 0] ); $results = $update->execute(); } }