本文整理汇总了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;
}
示例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);
}
示例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));
}
}
示例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());
}