コード例 #1
0
 /**
  * Adds entity virtual fields to $result
  *
  * @param array  $result
  * @param string $className
  * @param bool $withEntityDetails
  * @param bool $applyExclusions
  * @param bool $translate
  */
 protected function addVirtualRelations(array &$result, $className, $withEntityDetails, $applyExclusions, $translate)
 {
     if (!$this->virtualRelationProvider) {
         return;
     }
     $metadata = $this->getMetadataFor($className);
     $virtualRelations = $this->virtualRelationProvider->getVirtualRelations($className);
     foreach ($virtualRelations as $associationName => $virtualRelation) {
         if ($applyExclusions && $this->exclusionProvider->isIgnoredField($metadata, $associationName)) {
             continue;
         }
         $fieldType = $virtualRelation['relation_type'];
         $targetClassName = $this->entityClassResolver->getEntityClass($virtualRelation['related_entity_name']);
         $label = !empty($virtualRelation['label']) ? $virtualRelation['label'] : $this->getFieldLabel($metadata, $associationName);
         $this->addRelation($result, $associationName, $fieldType, $label, $this->getRelationType($fieldType), $targetClassName, $withEntityDetails, $translate);
     }
 }
コード例 #2
0
 protected function loadVirtualFields()
 {
     $entities = $this->cache->getEntities();
     foreach ($entities as $className => $entityData) {
         $virtualFields = $this->virtualFieldProvider->getVirtualFields($className);
         if (!empty($virtualFields)) {
             foreach ($virtualFields as $fieldName) {
                 if (null === $this->cache->getConfigurable($className, $fieldName)) {
                     $this->cache->saveConfigurable(false, $className, $fieldName);
                 }
             }
         }
         $virtualRelations = $this->virtualRelationProvider->getVirtualRelations($className);
         if (!empty($virtualRelations)) {
             foreach ($virtualRelations as $fieldName => $config) {
                 if (null === $this->cache->getConfigurable($className, $fieldName)) {
                     $this->cache->saveConfigurable(false, $className, $fieldName);
                 }
             }
         }
     }
 }