Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions modules/tide_api/src/IncludeResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,21 @@ protected function resolveIncludeTree(array $include_tree, Data $data, Data $inc
$includes = IncludedData::merge($includes, new IncludedData([$exception]));
continue;
}
$target_type = $field_list->getFieldDefinition()->getFieldStorageDefinition()->getSetting('target_type');
assert(!empty($target_type));
foreach ($field_list as $field_item) {
assert($field_item instanceof EntityReferenceItem);
// JSON:API includes are relationships. Ignore scalar attributes that
// were supplied as include paths instead of treating them as entity
// references with an empty target type.
if (!$field_item instanceof EntityReferenceItem) {
continue;
}

// Include the target_revision_id in the references of paragraphs.
$target_type = $field_item->getDataDefinition()->getSetting('target_type');
if ($field_item instanceof EntityReferenceRevisionsItem && $target_type == 'paragraph') {
if (!is_string($target_type) || $target_type === '' || !$this->entityTypeManager->hasDefinition($target_type)) {
continue;
}

if ($field_item instanceof EntityReferenceRevisionsItem && $target_type === 'paragraph') {
$references[$target_type][$field_item->get($field_item::mainPropertyName())->getValue()] = $field_item->get('target_revision_id')->getValue();
}
else {
Expand Down
Loading