/** * {@inheritdoc} */ public function guessColumnOptions($columnName, $entityName, $column) { $metadata = $this->entityManager->getClassMetadata($entityName); $result = []; if ($metadata->hasField($columnName) && !$metadata->hasAssociation($columnName)) { $result[Configuration::BASE_CONFIG_KEY] = ['enable' => true]; } return $result; }
/** * Get Entity Identifier By a class name * * @param $className * @return string */ protected function getEntityIdentifier($className) { // Extend entity always have "id" identifier if (strpos($className, self::ENTITY) !== false) { return 'id'; } return $this->em->getClassMetadata($className)->getSingleIdentifierColumnName(); }
/** * {@inheritdoc} */ public function guessColumnOptions($columnName, $entityName, $column) { $metadata = $this->entityManager->getClassMetadata($entityName); $result = []; $isConfigured = isset($column[Configuration::BASE_CONFIG_KEY]['editor']); $isConfigured = $isConfigured || isset($column[Configuration::BASE_CONFIG_KEY]['autocomplete_api_accessor']); if (!$isConfigured && $metadata->hasAssociation($columnName)) { $mapping = $metadata->getAssociationMapping($columnName); if ($mapping['type'] === ClassMetadata::MANY_TO_ONE) { $targetEntity = $metadata->getAssociationTargetClass($columnName); $targetEntityMetadata = $this->entityManager->getClassMetadata($targetEntity); if (isset($column[Configuration::BASE_CONFIG_KEY]['view_options']['value_field_name'])) { $labelField = $column[Configuration::BASE_CONFIG_KEY]['view_options']['value_field_name']; } else { $labelField = $this->guessLabelField($targetEntityMetadata, $columnName); } $result[Configuration::BASE_CONFIG_KEY] = ['enable' => true]; $result[PropertyInterface::FRONTEND_TYPE_KEY] = 'select'; $keyField = $targetEntityMetadata->getSingleIdentifierFieldName(); $result['choices'] = $this->getChoices($targetEntity, $keyField, $labelField); } } return $result; }
/** * Get list of Diamante tables to purge data from * * @return array */ protected function getTablesList() { $entitiesMetadata = array($this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Branch::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\BranchEmailConfiguration::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Ticket::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Comment::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Attachment::getClassName())); $toPurge = array(); /** @var $entity \Doctrine\ORM\Mapping\ClassMetadata */ foreach ($entitiesMetadata as $entity) { $tableName = $entity->getTableName(); $toPurge[] = $tableName; } return $toPurge; }
/** * Get list of Diamante tables to purge data from * * @return array */ protected function getTablesList() { $entitiesMetadata = array($this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Branch::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\BranchEmailConfiguration::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Ticket::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Comment::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\Attachment::getClassName()), $this->entityManager->getClassMetadata(\Diamante\DeskBundle\Entity\TicketHistory::getClassName()), $this->entityManager->getClassMetadata('\\Oro\\Bundle\\TagBundle\\Entity\\Tag'), $this->entityManager->getClassMetadata('\\Oro\\Bundle\\TagBundle\\Entity\\Tagging')); $toPurge = array(); $quoteStrategy = new DefaultQuoteStrategy(); /** @var $entity \Doctrine\ORM\Mapping\ClassMetadata */ foreach ($entitiesMetadata as $entity) { $tableName = $entity->getTableName(); $toPurge[] = $tableName; foreach ($entity->getAssociationMappings() as $assoc) { if (isset($assoc['joinTable'])) { $toPurge[] = $quoteStrategy->getJoinTableName($assoc, $entity, $this->dbPlatform); } } } return $toPurge; }