Beispiel #1
0
 /**
  * Delete all attribtes after an delete.
  *
  * @param Doctrine_Event $event Event.
  *
  * @return void
  */
 public function postDelete(Doctrine_Event $event)
 {
     $data = $event->getInvoker();
     if (!isset($data['__META__'])) {
         return;
     }
     $tableName = $this->getTableNameFromEvent($event);
     $idColumn = $this->getIdColumnFromEvent($event);
     // determine meta id
     if (isset($data['__META__']['id'])) {
         $metaId = $data['__META__']['id'];
     } else {
         $dataForObjectUtil = array();
         $dataForObjectUtil[$idColumn] = $data[$idColumn];
         $dataForObjectUtil['__META__'] = $data['__META__'];
         if ($dataForObjectUtil['__META__'] instanceof ArrayObject) {
             $dataForObjectUtil['__META__'] = $dataForObjectUtil['__META__']->getArrayCopy();
         }
         $meta = ObjectUtil::retrieveObjectMetaData($dataForObjectUtil, $tableName, $idColumn);
         $metaId = $meta['id'];
     }
     $dataForObjectUtil = array();
     $dataForObjectUtil[$idColumn] = $data[$idColumn];
     $dataForObjectUtil['__META__'] = $data['__META__'];
     $dataForObjectUtil['__META__']['id'] = $metaId;
     $dataForObjectUtil['__META__']['obj_id'] = $data[$idColumn];
     if ($dataForObjectUtil['__META__'] instanceof ArrayObject) {
         $dataForObjectUtil['__META__'] = $dataForObjectUtil['__META__']->getArrayCopy();
     }
     ObjectUtil::deleteObjectMetaData($dataForObjectUtil, $tableName, $idColumn);
 }