diff --git a/modules/backend/classes/FormWidgetBase.php b/modules/backend/classes/FormWidgetBase.php index 716b84dd0..f63d32d64 100644 --- a/modules/backend/classes/FormWidgetBase.php +++ b/modules/backend/classes/FormWidgetBase.php @@ -113,7 +113,19 @@ abstract class FormWidgetBase extends WidgetBase */ public function getLoadValue() { - return $this->formField->getValueFromData($this->data ?: $this->model); + $defaultValue = null; + + if (!$this->model->exists) { + if ($this->formField->defaultFrom) { + list($model, $attribute) = $this->formField->resolveModelAttribute($this->model, $this->formField->defaultFrom); + $defaultValue = $model->{$attribute}; + } + elseif ($this->formField->defaults !== '') { + $defaultValue = $this->formField->defaults; + } + } + + return $this->formField->getValueFromData($this->data ?: $this->model, $defaultValue); } /**