/**
  * Get the Fractal resource instance.
  *
  * @return \League\Fractal\Resource\ResourceInterface
  */
 public function getResource() : ResourceInterface
 {
     $this->manager->parseIncludes($this->relations);
     $transformer = $this->resource->getTransformer();
     if ($transformer instanceof Transformer && $transformer->allRelationsAllowed()) {
         $this->resource->setTransformer($transformer->setRelations($this->manager->getRequestedIncludes()));
     }
     return $this->resource->setMeta($this->meta);
 }
Exemple #2
0
 /**
  * Execute the resources transformer and return the data and included data.
  *
  * @internal
  *
  * @return array
  */
 protected function executeResourceTransformers()
 {
     $transformer = $this->resource->getTransformer();
     $data = $this->resource->getData();
     $transformedData = $includedData = [];
     if ($this->resource instanceof Item) {
         list($transformedData, $includedData[]) = $this->fireTransformer($transformer, $data);
     } elseif ($this->resource instanceof Collection) {
         foreach ($data as $value) {
             list($transformedData[], $includedData[]) = $this->fireTransformer($transformer, $value);
         }
     } else {
         throw new InvalidArgumentException('Argument $resource should be an instance of League\\Fractal\\Resource\\Item' . ' or League\\Fractal\\Resource\\Collection');
     }
     return [$transformedData, $includedData];
 }