示例#1
0
 /**
  * Obdela spremembe inverznih M:N kolekcij
  */
 protected function processInverseCollections()
 {
     foreach ($this->collections as $collection) {
         $mapping = $collection->getMapping();
         // zapišemo spremembe inverznih kolekcij M:N
         if ($mapping['type'] >= 8 && $this->isCollectionTracked($collection)) {
             $entity = $collection->getOwner();
             $inverseField = $mapping['inversedBy'];
             foreach ($collection->getInsertDiff() as $inverseEntity) {
                 if (!$this->uow->isScheduledForInsert($inverseEntity)) {
                     $this->addCollectionChange($inverseEntity, 'UPD', $inverseField, '+', $entity);
                 }
             }
             foreach ($collection->getDeleteDiff() as $inverseEntity) {
                 if (!$this->uow->isScheduledForInsert($inverseEntity)) {
                     $this->addCollectionChange($inverseEntity, 'UPD', $inverseField, '-', $entity);
                 }
             }
         }
     }
 }
示例#2
0
 /**
  * Determines whether an entity instance is managed in this EntityManager.
  *
  * @param object $entity
  * @return boolean TRUE if this EntityManager currently manages the given entity, FALSE otherwise.
  */
 public function contains($entity)
 {
     return $this->_unitOfWork->isScheduledForInsert($entity) || $this->_unitOfWork->isInIdentityMap($entity) && !$this->_unitOfWork->isScheduledForDelete($entity);
 }