示例#1
0
 /**
  * @param $linkPrefix
  * @return JsonApi\resource
  * @throws \Exception
  */
 protected function prepareJsonApiResource($linkPrefix = '/forest')
 {
     $toReturn = new JsonApi\resource($this->getCollection()->getName(), $this->getId());
     $toReturn->fill_data($this->getAttributes());
     foreach ($this->getRelationships() as $relationship) {
         $resource = new JsonApi\resource($relationship->getType(), $relationship->getId());
         $toReturn->add_relation($relationship->getType(), $resource);
     }
     foreach ($this->getIncluded() as $resource) {
         $toInclude = new JsonApi\resource($resource->getCollection()->getName(), $resource->getId());
         // NOTE : alsvanzelf/jsonapi takes current request to build set_self_link
         // => included resources must set it "manually"
         $toInclude->set_self_link($linkPrefix . '/' . $resource->getCollection()->getName() . '/' . $resource->getId());
         $toInclude->fill_data($resource->getAttributes());
         $toReturn->add_included_resource($toInclude);
     }
     return $toReturn;
 }