/** * @param Item $item * @return array */ public function getParameters(Item $item) { $parameters = array(); foreach ($item->getParameters() as $itemParameter) { $routeParameter = $itemParameter->getParameter(); $parameterName = $routeParameter->getName(); if ($routeParameter->getType()) { $repository = $this->entityManager->getRepository($routeParameter->getType()); $entity = $repository->find($itemParameter->getValue()); // USE PROPERTY ACCESSOR !!! $getter = sprintf('get%s', ucfirst($routeParameter->getValueField())); $parameterValue = $entity->{$getter}(); } else { $parameterValue = $itemParameter->getValue(); } $parameters[$parameterName] = $parameterValue; } return $parameters; }