diff --git a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php index d621897..613f88f 100644 --- a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php +++ b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php @@ -411,7 +411,7 @@ public function getDefaultValue(ContentEntityInterface $entity) { * @return $this */ public function setDefaultValueCallback($callback) { - if (!is_string($callback)) { + if (isset($callback) && !is_string($callback)) { throw new \InvalidArgumentException('Default value callback must be a string, like "function_name" or "ClassName::methodName"'); } $this->definition['default_value_callback'] = $callback; diff --git a/core/lib/Drupal/Core/Field/FieldConfigBase.php b/core/lib/Drupal/Core/Field/FieldConfigBase.php index 2548085..e0764cd 100644 --- a/core/lib/Drupal/Core/Field/FieldConfigBase.php +++ b/core/lib/Drupal/Core/Field/FieldConfigBase.php @@ -334,8 +334,8 @@ public function isRequired() { */ public function getDefaultValue(ContentEntityInterface $entity) { // Allow custom default values function. - if ($function = $this->default_value_callback) { - $value = call_user_func($function, $entity, $this); + if ($callback = $this->default_value_callback) { + $value = call_user_func($callback, $entity, $this); } else { $value = $this->default_value; diff --git a/core/modules/node/src/Tests/NodeFieldOverridesTest.php b/core/modules/node/src/Tests/NodeFieldOverridesTest.php index 8ff6bde..8765353 100644 --- a/core/modules/node/src/Tests/NodeFieldOverridesTest.php +++ b/core/modules/node/src/Tests/NodeFieldOverridesTest.php @@ -1,4 +1,5 @@ fieldType); + $definition->setDefaultValueCallback(NULL); + } + + /** * Provides a Mock base field default value callback. * * @param \Drupal\Core\Entity\EntityInterface $entity