Extract private method to retrieve discriminator values
This commit is contained in:
parent
2905b435db
commit
f2da5bc93e
@ -396,21 +396,12 @@ abstract class AbstractHydrator
|
|||||||
// the current discriminator value must be saved in order to disambiguate fields hydration,
|
// the current discriminator value must be saved in order to disambiguate fields hydration,
|
||||||
// should there be field name collisions
|
// should there be field name collisions
|
||||||
if ($classMetadata->parentClasses && isset($this->_rsm->discriminatorColumns[$ownerMap])) {
|
if ($classMetadata->parentClasses && isset($this->_rsm->discriminatorColumns[$ownerMap])) {
|
||||||
$discriminatorValues = array_map(
|
|
||||||
function (string $subClass) : string {
|
|
||||||
return (string) $this->getClassMetadata($subClass)->discriminatorValue;
|
|
||||||
},
|
|
||||||
$classMetadata->subClasses
|
|
||||||
);
|
|
||||||
|
|
||||||
$discriminatorValues[] = (string) $classMetadata->discriminatorValue;
|
|
||||||
|
|
||||||
return $this->_cache[$key] = \array_merge(
|
return $this->_cache[$key] = \array_merge(
|
||||||
$columnInfo,
|
$columnInfo,
|
||||||
[
|
[
|
||||||
'discriminatorColumn' => $this->_rsm->discriminatorColumns[$ownerMap],
|
'discriminatorColumn' => $this->_rsm->discriminatorColumns[$ownerMap],
|
||||||
'discriminatorValue' => $classMetadata->discriminatorValue,
|
'discriminatorValue' => $classMetadata->discriminatorValue,
|
||||||
'discriminatorValues' => $discriminatorValues,
|
'discriminatorValues' => $this->getDiscriminatorValues($classMetadata),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -463,6 +454,23 @@ abstract class AbstractHydrator
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string[]
|
||||||
|
*/
|
||||||
|
private function getDiscriminatorValues(ClassMetadata $classMetadata) : array
|
||||||
|
{
|
||||||
|
$values = array_map(
|
||||||
|
function (string $subClass) : string {
|
||||||
|
return (string) $this->getClassMetadata($subClass)->discriminatorValue;
|
||||||
|
},
|
||||||
|
$classMetadata->subClasses
|
||||||
|
);
|
||||||
|
|
||||||
|
$values[] = (string) $classMetadata->discriminatorValue;
|
||||||
|
|
||||||
|
return $values;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve ClassMetadata associated to entity class name.
|
* Retrieve ClassMetadata associated to entity class name.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user