当前位置: 首页>>代码示例>>PHP>>正文


PHP EntityManagerInterface::getEntityTypeFromClass方法代码示例

本文整理汇总了PHP中Drupal\Core\Entity\EntityManagerInterface::getEntityTypeFromClass方法的典型用法代码示例。如果您正苦于以下问题:PHP EntityManagerInterface::getEntityTypeFromClass方法的具体用法?PHP EntityManagerInterface::getEntityTypeFromClass怎么用?PHP EntityManagerInterface::getEntityTypeFromClass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Drupal\Core\Entity\EntityManagerInterface的用法示例。


在下文中一共展示了EntityManagerInterface::getEntityTypeFromClass方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: denormalize

 /**
  * {@inheritdoc}
  */
 public function denormalize($data, $class, $format = NULL, array $context = [])
 {
     // Get the entity type ID while letting context override the $class param.
     $entity_type_id = !empty($context['entity_type']) ? $context['entity_type'] : $this->entityManager->getEntityTypeFromClass($class);
     /** @var \Drupal\Core\Entity\EntityTypeInterface $entity_type_definition */
     // Get the entity type definition.
     $entity_type_definition = $this->entityManager->getDefinition($entity_type_id, FALSE);
     // Don't try to create an entity without an entity type id.
     if (!$entity_type_definition) {
         throw new UnexpectedValueException(sprintf('The specified entity type "%s" does not exist. A valid etnity type is required for denormalization', $entity_type_id));
     }
     // The bundle property will be required to denormalize a bundleable entity.
     if ($entity_type_definition->hasKey('bundle')) {
         $bundle_key = $entity_type_definition->getKey('bundle');
         // Get the base field definitions for this entity type.
         $base_field_definitions = $this->entityManager->getBaseFieldDefinitions($entity_type_id);
         // Get the ID key from the base field definition for the bundle key or
         // default to 'value'.
         $key_id = isset($base_field_definitions[$bundle_key]) ? $base_field_definitions[$bundle_key]->getFieldStorageDefinition()->getMainPropertyName() : 'value';
         // Normalize the bundle if it is not explicitly set.
         $data[$bundle_key] = isset($data[$bundle_key][0][$key_id]) ? $data[$bundle_key][0][$key_id] : (isset($data[$bundle_key]) ? $data[$bundle_key] : NULL);
         // Get the bundle entity type from the entity type definition.
         $bundle_type_id = $entity_type_definition->getBundleEntityType();
         $bundle_types = $bundle_type_id ? $this->entityManager->getStorage($bundle_type_id)->getQuery()->execute() : [];
         // Make sure a bundle has been provided.
         if (!is_string($data[$bundle_key])) {
             throw new UnexpectedValueException('A string must be provided as a bundle value.');
         }
         // Make sure the submitted bundle is a valid bundle for the entity type.
         if ($bundle_types && !in_array($data[$bundle_key], $bundle_types)) {
             throw new UnexpectedValueException(sprintf('"%s" is not a valid bundle type for denormalization.', $data[$bundle_key]));
         }
     }
     // Create the entity from data.
     $entity = $this->entityManager->getStorage($entity_type_id)->create($data);
     // Pass the names of the fields whose values can be merged.
     // @todo https://www.drupal.org/node/2456257 remove this.
     $entity->_restSubmittedFields = array_keys($data);
     return $entity;
 }
开发者ID:ddrozdik,项目名称:dmaps,代码行数:43,代码来源:EntityNormalizer.php

示例2: getEntityTypeFromClass

 /**
  * {@inheritdoc}
  */
 public function getEntityTypeFromClass($class_name)
 {
     return $this->entityManager->getEntityTypeFromClass($class_name);
 }
开发者ID:ddrozdik,项目名称:dmaps,代码行数:7,代码来源:EntityManagerWrapper.php


注:本文中的Drupal\Core\Entity\EntityManagerInterface::getEntityTypeFromClass方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。