本文整理汇总了PHP中Doctrine\ODM\MongoDB\Mapping\ClassMetadata::setDiscriminatorColumn方法的典型用法代码示例。如果您正苦于以下问题:PHP ClassMetadata::setDiscriminatorColumn方法的具体用法?PHP ClassMetadata::setDiscriminatorColumn怎么用?PHP ClassMetadata::setDiscriminatorColumn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine\ODM\MongoDB\Mapping\ClassMetadata
的用法示例。
在下文中一共展示了ClassMetadata::setDiscriminatorColumn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: loadMetadataForClass
/**
* {@inheritdoc}
*/
public function loadMetadataForClass($className, ClassMetadata $class)
{
$element = $this->getElement($className);
if (!$element) {
return;
}
$element['type'] = isset($element['type']) ? $element['type'] : 'document';
if (isset($element['db'])) {
$class->setDB($element['db']);
}
if (isset($element['collection'])) {
$class->setCollection($element['collection']);
}
if ($element['type'] == 'document') {
if (isset($element['repositoryClass'])) {
$class->setCustomRepositoryClass($element['repositoryClass']);
}
} elseif ($element['type'] === 'mappedSuperclass') {
$class->isMappedSuperclass = true;
} elseif ($element['type'] === 'embeddedDocument') {
$class->isEmbeddedDocument = true;
}
if (isset($element['indexes'])) {
foreach ($element['indexes'] as $index) {
$class->addIndex($index['keys'], $index['options']);
}
}
if (isset($element['inheritanceType'])) {
$class->setInheritanceType(constant('Doctrine\\ODM\\MongoDB\\Mapping\\ClassMetadata::INHERITANCE_TYPE_' . strtoupper($element['inheritanceType'])));
}
if (isset($element['discriminatorColumn'])) {
$discrColumn = $element['discriminatorColumn'];
$class->setDiscriminatorColumn(array('name' => $discrColumn['name'], 'fieldName' => $discrColumn['fieldName']));
}
if (isset($element['discriminatorMap'])) {
$class->setDiscriminatorMap($element['discriminatorMap']);
}
if (isset($element['fields'])) {
foreach ($element['fields'] as $fieldName => $mapping) {
if (!isset($mapping['fieldName'])) {
$mapping['fieldName'] = $fieldName;
}
$class->mapField($mapping);
}
}
if (isset($element['embedOne'])) {
foreach ($element['embedOne'] as $fieldName => $embed) {
$mapping = $this->_getMappingFromEmbed($fieldName, $embed, 'one');
$class->mapField($mapping);
}
}
if (isset($element['embedMany'])) {
foreach ($element['embedMany'] as $fieldName => $embed) {
$mapping = $this->_getMappingFromEmbed($fieldName, $embed, 'many');
$class->mapField($mapping);
}
}
if (isset($element['referenceOne'])) {
foreach ($element['referenceOne'] as $fieldName => $reference) {
$mapping = $this->_getMappingFromReference($fieldName, $reference, 'one');
$class->mapField($mapping);
}
}
if (isset($element['referenceMany'])) {
foreach ($element['referenceMany'] as $fieldName => $reference) {
$mapping = $this->_getMappingFromReference($fieldName, $reference, 'many');
$class->mapField($mapping);
}
}
if (isset($element['lifecycleCallbacks'])) {
foreach ($element['lifecycleCallbacks'] as $type => $methods) {
foreach ($methods as $method) {
$class->addLifecycleCallback($method, constant('Doctrine\\ORM\\Events::' . $type));
}
}
}
}