/** * Overrides delete() in App_Model. * * When a group is deleted, all its children are linked * to its parent * * @param mixed $where * @access public * @return int */ public function delete($where) { if (is_numeric($where)) { $where = $this->_primary . ' = ' . $where; } $select = new Zend_Db_Select($this->_db); $select->from($this->_name); $select->where($where); $rows = $this->_db->fetchAll($select); $userGroupModel = new BackofficeUserGroup(); foreach ($rows as $row) { $children = $this->findByParentId($row['id']); foreach ($children as $child) { $this->update(array('parent_id' => $row['parent_id']), $this->_db->quoteInto('id = ?', $child['id'])); $userGroupModel->routeUsersToGroup($row['id'], $row['parent_id']); } } return parent::delete($where); }
/** * Overrides delete() in App_Model. * * When an user is deleted, all associated objects are also * deleted * * @param mixed $where * @access public * @return int */ public function delete($where) { if (is_numeric($where)) { $where = $this->_primary . ' = ' . $where; } $select = new Zend_Db_Select($this->_db); $select->from($this->_name); $select->where($where); $rows = $this->_db->fetchAll($select); $userGroupModel = new BackofficeUserGroup(); foreach ($rows as $row) { $userGroupModel->deleteByUserId($row['id']); } return parent::delete($where); }