Ejemplo n.º 1
0
 public function testGetRelations()
 {
     $entityName = 'TestEntity';
     $expectedRelations = [['name' => 'field']];
     $this->fieldProvider->expects($this->once())->method('getRelations')->with($entityName)->will($this->returnValue($expectedRelations));
     $this->assertEquals($expectedRelations, $this->helper->getRelations($entityName));
     // do not call twice
     $this->assertEquals($expectedRelations, $this->helper->getRelations($entityName));
 }
Ejemplo n.º 2
0
 /**
  * Finds detached properties in entity and reloads them from UnitOfWork
  *
  * @param object $entity doctrine entity
  * @param int $level maximum nesting level
  */
 public function fixEntityAssociationFields($entity, $level = 0)
 {
     if ($level < 0) {
         return;
     }
     // we should use entityFieldProvider through fieldHelper
     // to get relations data and avoid deleted relations in result list
     $relations = $this->fieldHelper->getRelations(ClassUtils::getClass($entity));
     if (!$relations) {
         return;
     }
     foreach ($relations as $associationMapping) {
         $fieldName = $associationMapping['name'];
         $value = $this->propertyAccessor->getValue($entity, $fieldName);
         if ($value && is_object($value)) {
             if ($value instanceof Collection) {
                 $this->fixCollectionField($value, $level);
             } else {
                 $this->fixEntityField($entity, $fieldName, $value, $level);
             }
         }
     }
 }