Tobscure\JsonApi\Document::getIncluded PHP Method

getIncluded() protected method

Get included resources.
protected getIncluded ( Tobscure\JsonApi\ElementInterface $element, boolean $includeParent = false ) : Resource[]
$element Tobscure\JsonApi\ElementInterface
$includeParent boolean
return Resource[]
    protected function getIncluded(ElementInterface $element, $includeParent = false)
    {
        $included = [];
        foreach ($element->getResources() as $resource) {
            if ($resource->isIdentifier()) {
                continue;
            }
            if ($includeParent) {
                $included = $this->mergeResource($included, $resource);
            } else {
                $type = $resource->getType();
                $id = $resource->getId();
            }
            foreach ($resource->getUnfilteredRelationships() as $relationship) {
                $includedElement = $relationship->getData();
                if (!$includedElement instanceof ElementInterface) {
                    continue;
                }
                foreach ($this->getIncluded($includedElement, true) as $child) {
                    // If this resource is the same as the top-level "data"
                    // resource, then we don't want it to show up again in the
                    // "included" array.
                    if (!$includeParent && $child->getType() === $type && $child->getId() === $id) {
                        continue;
                    }
                    $included = $this->mergeResource($included, $child);
                }
            }
        }
        $flattened = [];
        array_walk_recursive($included, function ($a) use(&$flattened) {
            $flattened[] = $a;
        });
        return $flattened;
    }