diff --git a/src/Form/LinkField.php b/src/Form/LinkField.php index fcc5eeaa..fef8deac 100644 --- a/src/Form/LinkField.php +++ b/src/Form/LinkField.php @@ -6,11 +6,12 @@ use SilverStripe\LinkField\Models\Link; use SilverStripe\LinkField\Form\Traits\AllowedLinkClassesTrait; use SilverStripe\LinkField\Form\Traits\LinkFieldGetOwnerTrait; +use SilverStripe\Forms\HasOneRelationFieldInterface; /** * Allows CMS users to edit a Link object. */ -class LinkField extends FormField +class LinkField extends FormField implements HasOneRelationFieldInterface { use AllowedLinkClassesTrait; use LinkFieldGetOwnerTrait; diff --git a/src/Form/Traits/LinkFieldGetOwnerTrait.php b/src/Form/Traits/LinkFieldGetOwnerTrait.php index 8740c844..575a4bf2 100644 --- a/src/Form/Traits/LinkFieldGetOwnerTrait.php +++ b/src/Form/Traits/LinkFieldGetOwnerTrait.php @@ -27,8 +27,12 @@ private function getOwnerFields(): array $relation = $this->getName(); // Elemental content block if (class_exists(BaseElement::class) && is_a($owner, BaseElement::class)) { + // Remove namespaces from inline editable blocks + // This will return an empty array for non-inline editable blocks (e.g. blocks in a gridfield) $arr = ElementalAreaController::removeNamespacesFromFields([$relation => ''], $owner->ID); - $relation = array_keys($arr)[0]; + if (!empty($arr)) { + $relation = array_key_first($arr); + } } return [ 'ID' => $owner->ID,