/**
  * {@inheritdoc}
  */
 public function findActionByRouteName($routeName)
 {
     $resourceDefinition = $this->compilerCache->findResourceDefinition($routeName);
     if ($resourceDefinition !== null) {
         return $resourceDefinition->findActionByRouteName($routeName);
     }
     return null;
 }
Ejemplo n.º 2
0
 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;
 }