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


PHP ClassMetadata::mapEmbedded方法代码示例

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


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

示例1: getMetadata

 /**
  * @return ClassMetadata
  */
 public static function getMetadata()
 {
     $metadata = new ClassMetadata(static::class);
     $metadata->setIdentifier(['id']);
     $metadata->mapField(['fieldName' => 'id']);
     $metadata->mapField(['fieldName' => 'a']);
     $metadata->mapField(['fieldName' => 'b']);
     $metadata->mapField(['fieldName' => 'c']);
     $metadata->mapEmbedded(['fieldName' => 'd', 'class' => DummyEmbeddable::class, 'columnPrefix' => 'd']);
     $metadata->mapManyToOne(['fieldName' => 'parent', 'targetEntity' => self::class, 'inversedBy' => 'children']);
     $metadata->mapOneToMany(['fieldName' => 'children', 'targetEntity' => self::class, 'mappedBy' => 'parent']);
     $metadata->wakeupReflection(new RuntimeReflectionService());
     return $metadata;
 }
开发者ID:mihai-stancu,项目名称:serializer,代码行数:17,代码来源:DummyEntity.php

示例2: remapActions

 private function remapActions(ClassMetadata $metadata, ClassMetadataFactory $metadataFactory)
 {
     $fieldName = 'actions';
     unset($metadata->fieldMappings[$fieldName]);
     unset($metadata->embeddedClasses[$fieldName]);
     // Re-map the embeddable
     $mapping = ['fieldName' => $fieldName, 'class' => $this->actionsClass, 'columnPrefix' => null];
     $metadata->mapEmbedded($mapping);
     // Remove the existing inlined fields
     foreach ($metadata->fieldMappings as $name => $fieldMapping) {
         if (isset($fieldMapping['declaredField']) && $fieldMapping['declaredField'] === $fieldName) {
             unset($metadata->fieldMappings[$name]);
             unset($metadata->fieldNames[$fieldMapping['columnName']]);
         }
     }
     // Re-inline the embeddable
     $embeddableMetadata = $metadataFactory->getMetadataFor($this->actionsClass);
     $metadata->inlineEmbeddable($fieldName, $embeddableMetadata);
 }
开发者ID:gbelmm,项目名称:ACL,代码行数:19,代码来源:ACLMetadataLoader.php

示例3: addNestedEmbeddedClasses

 /**
  * Adds nested embedded classes metadata to a parent class.
  *
  * @param ClassMetadata $subClass    Sub embedded class metadata to add nested embedded classes metadata from.
  * @param ClassMetadata $parentClass Parent class to add nested embedded classes metadata to.
  * @param string        $prefix      Embedded classes' prefix to use for nested embedded classes field names.
  */
 private function addNestedEmbeddedClasses(ClassMetadata $subClass, ClassMetadata $parentClass, $prefix)
 {
     foreach ($subClass->embeddedClasses as $property => $embeddableClass) {
         if (isset($embeddableClass['inherited'])) {
             continue;
         }
         $embeddableMetadata = $this->getMetadataFor($embeddableClass['class']);
         $parentClass->mapEmbedded(array('fieldName' => $prefix . '.' . $property, 'class' => $embeddableMetadata->name, 'columnPrefix' => $embeddableClass['columnPrefix'], 'declaredField' => $embeddableClass['declaredField'] ? $prefix . '.' . $embeddableClass['declaredField'] : $prefix, 'originalField' => $embeddableClass['originalField'] ?: $property));
     }
 }
开发者ID:dracony,项目名称:forked-php-orm-benchmark,代码行数:17,代码来源:ClassMetadataFactory.php

示例4: testWakeupReflectionWithEmbeddableAndStaticReflectionService

 public function testWakeupReflectionWithEmbeddableAndStaticReflectionService()
 {
     $classMetadata = new ClassMetadata('Doctrine\\Tests\\ORM\\Mapping\\TestEntity1');
     $classMetadata->mapEmbedded(array('fieldName' => 'test', 'class' => 'Doctrine\\Tests\\ORM\\Mapping\\TestEntity1', 'columnPrefix' => false));
     $field = array('fieldName' => 'test.embeddedProperty', 'type' => 'string', 'originalClass' => 'Doctrine\\Tests\\ORM\\Mapping\\TestEntity1', 'declaredField' => 'test', 'originalField' => 'embeddedProperty');
     $classMetadata->mapField($field);
     $classMetadata->wakeupReflection(new StaticReflectionService());
     $this->assertEquals(array('test' => null, 'test.embeddedProperty' => null), $classMetadata->getReflectionProperties());
 }
开发者ID:selimcr,项目名称:servigases,代码行数:9,代码来源:ClassMetadataTest.php


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