diff --git a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php index a552a0e..926399e 100644 --- a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php +++ b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php @@ -184,6 +184,9 @@ public function setValue($values, $notify = TRUE) { if (isset($values['options']) && is_string($values['options'])) { $values['options'] = unserialize($values['options']); } + if (!isset($values['options'])) { + $values['options'] = []; + } parent::setValue($values, $notify); } diff --git a/core/modules/link/src/Tests/LinkItemTest.php b/core/modules/link/src/Tests/LinkItemTest.php index 8431757..6c4bc9a 100644 --- a/core/modules/link/src/Tests/LinkItemTest.php +++ b/core/modules/link/src/Tests/LinkItemTest.php @@ -105,6 +105,11 @@ public function testLinkItem() { $entity = entity_create('entity_test'); $entity->field_test->generateSampleItems(); $this->entityValidateAndSave($entity); + + $entity->field_test = ['uri' => 'internal:/node/add']; + $this->assertEqual($entity->field_test->uri, 'internal:/node/add'); + $this->assertNull($entity->field_test->title); + $this->assertIdentical($entity->field_test->options, []); } }