diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index 41328f664..1e38156b5 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -1509,15 +1509,24 @@ class RelationController extends ControllerBehavior $field = $this->field; } + if (!$config || !isset($this->originalConfig->{$field})) { + return; + } + + if ( + !is_array($config) && + (!$config = @json_decode(@base64_decode($config), true)) + ) { + return; + } + $parsedConfig = array_only($config, ['readOnly']); $parsedConfig['view'] = array_only($config, ['recordUrl']); - if (is_array($config) && isset($this->originalConfig->{$field})) { - $this->originalConfig->{$field} = array_merge_recursive( - $this->originalConfig->{$field}, - $parsedConfig - ); - } + $this->originalConfig->{$field} = array_replace_recursive( + $this->originalConfig->{$field}, + $parsedConfig + ); } /** diff --git a/modules/backend/behaviors/relationcontroller/partials/_container.htm b/modules/backend/behaviors/relationcontroller/partials/_container.htm index 85a2cce30..eb66e963a 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_container.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_container.htm @@ -1,6 +1,6 @@
relationRenderToolbar()): ?>