diff --git a/modules/backend/traits/FormModelSaver.php b/modules/backend/traits/FormModelSaver.php index 3f188ddd6..80c6f66f3 100644 --- a/modules/backend/traits/FormModelSaver.php +++ b/modules/backend/traits/FormModelSaver.php @@ -90,7 +90,7 @@ trait FormModelSaver $model->addPurgeable($attributesToPurge); } else { - $model->bindEvent('model.saveInternal', function() use ($model, $attributesToPurge) { + $model->bindEventOnce('model.saveInternal', function() use ($model, $attributesToPurge) { foreach ($attributesToPurge as $attribute) { unset($model->attributes[$attribute]); } diff --git a/modules/backend/widgets/Form.php b/modules/backend/widgets/Form.php index c9ec6cdd1..faa0eb10c 100644 --- a/modules/backend/widgets/Form.php +++ b/modules/backend/widgets/Form.php @@ -319,7 +319,10 @@ class Form extends WidgetBase $data = $this->getSaveData(); } - $this->model->forceFill($data); + if (method_exists($this->model, 'forceFill')) { + $this->model->forceFill($data); + } + $this->data = (object) array_merge((array) $this->data, (array) $data); foreach ($this->allFields as $field) {