From 78c5a6af5d083edae1332610e5de6c9ee9641fe7 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Thu, 27 Nov 2014 19:15:15 +1100 Subject: [PATCH] Fixes #761 - Widgets can support proxy fields too --- modules/backend/widgets/Form.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/backend/widgets/Form.php b/modules/backend/widgets/Form.php index 842e8b43c..a19fdb645 100644 --- a/modules/backend/widgets/Form.php +++ b/modules/backend/widgets/Form.php @@ -803,13 +803,15 @@ class Form extends WidgetBase * Give widgets an opportunity to process the data. */ foreach ($this->formWidgets as $field => $widget) { - $widgetValue = array_key_exists($field, $data) - ? $data[$field] - : null; + $parts = Str::evalHtmlArray($field); + $dotted = implode('.', $parts); - $data[$field] = $widget->getSaveData($widgetValue); - if ($data[$field] === FormWidgetBase::NO_SAVE_DATA) { - unset($data[$field]); + $widgetValue = $widget->getSaveData(array_get($data, $dotted)); + if ($widgetValue === FormWidgetBase::NO_SAVE_DATA) { + array_forget($data, $dotted); + } + else { + array_set($data, $dotted, $widgetValue); } }