_cascadeDelete example


        $this->_delete();

        /** * Execute cascading deletes against dependent tables */
        $depTables = $this->_getTable()->getDependentTables();
        if (!empty($depTables)) {
            $pk = $this->_getPrimaryKey();
            foreach ($depTables as $tableClass) {
                $t = $this->_getTableFromString($tableClass);
                $t->_cascadeDelete($this->getTableClass()$pk);
            }
        }

        /** * Execute the DELETE (this may throw an exception) */
        $result = $this->_getTable()->delete($where);

        /** * Execute post-DELETE logic */
        

        $depTables = $this->getDependentTables();
        if (!empty($depTables)) {
            $resultSet = $this->fetchAll($where);
            if (count($resultSet) > 0 ) {
                foreach ($resultSet as $row) {
                    /** * Execute cascading deletes against dependent tables */
                    foreach ($depTables as $tableClass) {
                        $t = self::getTableFromString($tableClass$this);
                        $t->_cascadeDelete($tableClass$row->getPrimaryKey());
                    }
                }
            }
        }

        $tableSpec = ($this->_schema ? $this->_schema . '.' : '') . $this->_name;
        return $this->_db->delete($tableSpec$where);
    }

    /** * Called by parent table's class during delete() method. * * @param string $parentTableClassname * @param array $primaryKey * @return int Number of affected rows */
Home | Imprint | This part of the site doesn't use cookies.