/** * {@inheritdoc} */ public function findActionByRouteName($routeName) { $resourceDefinition = $this->compilerCache->findResourceDefinition($routeName); if ($resourceDefinition !== null) { return $resourceDefinition->findActionByRouteName($routeName); } return null; }
protected function exportEmbed(ContextInterface $context, ResourceInterface $resource, Embed $embed, $instance) { $routeName = $embed->getRouteName(); $embedResourceDefinition = $this->compilerCache->findResourceDefinition($routeName); if ($embedResourceDefinition !== null) { $embedAction = $embedResourceDefinition->findActionByRouteName($routeName); if ($embedAction !== null) { $embedTransform = $embedAction->getTransform(); $embedTransformMapping = $embedAction->getTransformMapping(); $embedContext = EmbedContext::create($embedResourceDefinition, $context, $embed->getName()); $value = $this->getEmbedValue($embedTransform, $embedTransformMapping, $embed, $instance); if ($value === null) { } else { if (is_array($value) === true || is_a($value, '\\Traversable') === true) { $items = []; foreach ($value as $item) { $export = $embedTransform->export($embedContext, $resource, $embedTransformMapping, $item); $items[] = $export; } return $this->factory->createCollectionResponse($embedResourceDefinition, $resource, $context, null, $items); } else { return $embedTransform->export($embedContext, $resource, $embedTransformMapping, $value); } } } } return null; }