/** * @param string $entityClass * @param array $config * * @return string[] */ public function getFieldsToSerialize($entityClass, $config) { $entityMetadata = $this->doctrineHelper->getEntityMetadata($entityClass); return array_filter($this->getFields($entityClass, $config), function ($field) use($entityMetadata) { return !$entityMetadata->isCollectionValuedAssociation($field); }); }
/** * @param string $entityClass * * @return string */ protected function getEntityIdFieldName($entityClass) { return $this->doctrineHelper->getEntityMetadata($entityClass)->getSingleIdentifierFieldName(); }
/** * @param array $associationMapping * @param array $entityIds * @param array $config * * @return Query */ protected function getRelatedItemsIdsQuery($associationMapping, $entityIds, $config) { $qb = $this->getToManyAssociationQueryBuilder($associationMapping, $entityIds)->addSelect(sprintf('r.%s as relatedEntityId', $this->doctrineHelper->getEntityIdFieldName($associationMapping['targetEntity']))); return $this->getQuery($qb, $config); }
/** * @param string $entityClass * @param array $config * * @return bool */ protected function hasAssociations($entityClass, $config) { $entityMetadata = $this->doctrineHelper->getEntityMetadata($entityClass); $fields = $this->fieldAccessor->getFields($entityClass, $config); foreach ($fields as $field) { if ($entityMetadata->isAssociation($field)) { return true; } } return false; }