コード例 #1
0
 /**
  * @param string $methodName
  * @param array  $args
  */
 public function load($entities, DcCompat $compat)
 {
     $providerName = $compat->getModel()->getProviderName();
     $enviroment = $compat->getEnvironment();
     /** @var EntityDataProvider $dataProvider */
     $dataProvider = $enviroment->getDataProvider($providerName);
     $entityManager = $dataProvider->getEntityManager();
     $metaFactory = $entityManager->getMetadataFactory();
     $metaData = $metaFactory->getMetadataFor($dataProvider->getEntityRepository()->getClassName());
     $associationNames = $metaData->getAssociationNames();
     $entityAccessor = EntityHelper::getEntityAccessor();
     $ids = array();
     if (is_array($entities) || $entities instanceof \Traversable) {
         foreach ($entities as $entity) {
             if (is_object($entity)) {
                 $ids[] = $entityAccessor->getPrimaryKey($entity);
                 continue;
             }
             if (!empty($associationNames) && in_array($compat->getPropertyName(), $associationNames)) {
                 $ids[] = $entity;
             }
         }
     }
     return $ids;
 }
コード例 #2
0
 /**
  * Get the environment.
  *
  * @return EnvironmentInterface
  */
 public function getEnvironment()
 {
     return $this->dataContainer->getEnvironment();
 }