public function getParentMetadataForProperty($baseClass, $propertyFullName)
    {
        $nameElements = explode('.', $propertyFullName);
        $lastPropertyName = array_pop($nameElements);
        $class = $baseClass;
        $parentAssociationMappings = [];

        foreach ($nameElements as $nameElement) {
            $metadata = $this->getMetadata($class);

            if (isset($metadata->associationMappings[$nameElement])) {
                $parentAssociationMappings[] = $metadata->associationMappings[$nameElement];
                $class = $metadata->getAssociationTargetClass($nameElement);

                continue;
            }

            break;
        }

        $properties = \array_slice($nameElements, \count($parentAssociationMappings));
        $properties[] = $lastPropertyName;

        return [$this->getMetadata($class), implode('.', $properties), $parentAssociationMappings];
    }
public function getParentMetadataForProperty($baseClass, $propertyFullName)
    {
        $nameElements = explode('.', $propertyFullName);
        $lastPropertyName = array_pop($nameElements);
        $class = $baseClass;
        $parentAssociationMappings = [];

        foreach ($nameElements as $nameElement) {
            $metadata = $this->getMetadata($class);

            if (isset($metadata->associationMappings[$nameElement])) {
                $parentAssociationMappings[] = $metadata->associationMappings[$nameElement];
                $class = $metadata->getAssociationTargetClass($nameElement);

                continue;
            }

            break;
        }

        $properties = \array_slice($nameElements, \count($parentAssociationMappings));
        $properties[] = $lastPropertyName;

        return [$this->getMetadata($class), implode('.', $properties), $parentAssociationMappings];
    }
public function getParentMetadataForProperty ( $ baseClass , $ propertyFullName ) { $ nameElements = explode ( '.' , $ propertyFullName ) ; $ lastPropertyName = array_pop ( $ nameElements ) ; $ class = $ baseClass ; $ parentAssociationMappings = [ ] ; foreach ( $ nameElements as $ nameElement ) { $ metadata = $ this -> getMetadata ( $ class ) ; if ( isset ( $ metadata -> associationMappings [ $ nameElement ] ) ) { $ parentAssociationMappings [ ] = $ metadata -> associationMappings [ $ nameElement ] ; $ class = $ metadata -> getAssociationTargetClass ( $ nameElement ) ; continue ; } break ; } $ properties = \ array_slice ( $ nameElements , \ count ( $ parentAssociationMappings ) ) ; $ properties [ ] = $ lastPropertyName ; return [ $ this -> getMetadata ( $ class ) , implode ( '.' , $ properties ) , $ parentAssociationMappings ] ; }
Returns the model's metadata holding the fully qualified property, and the last
property name.

@param string $baseClass        The base class of the model holding the fully qualified property
@param string $propertyFullName The name of the fully qualified property (dot ('.') separated
property string)

@return array(
\Doctrine\ORM\Mapping\ClassMetadata $parentMetadata,
string $lastPropertyName,
array $parentAssociationMappings
)
Returns the model s metadata holding the fully qualified property and the last property name .