You are here

public function ResourceType::getRelatableResourceTypes in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/jsonapi/src/ResourceType/ResourceType.php \Drupal\jsonapi\ResourceType\ResourceType::getRelatableResourceTypes()

Get all resource types with which this type may have a relationship.

Return value

array The relatable resource types, keyed by relationship field names.

See also

self::setRelatableResourceTypes()

File

core/modules/jsonapi/src/ResourceType/ResourceType.php, line 403

Class

ResourceType
Value object containing all metadata for a JSON:API resource type.

Namespace

Drupal\jsonapi\ResourceType

Code

public function getRelatableResourceTypes() {
  if (!isset($this->relatableResourceTypesByField)) {
    $this->relatableResourceTypesByField = array_reduce(array_map(function (ResourceTypeRelationship $field) {
      return [
        $field
          ->getPublicName() => $field
          ->getRelatableResourceTypes(),
      ];
    }, array_filter($this->fields, function (ResourceTypeField $field) {
      return $field instanceof ResourceTypeRelationship;
    })), 'array_merge', []);
  }
  return $this->relatableResourceTypesByField;
}