diff --git a/src/Console/Actions/SyncSettings.php b/src/Console/Actions/SyncSettings.php index 469ed4ae..67277b81 100755 --- a/src/Console/Actions/SyncSettings.php +++ b/src/Console/Actions/SyncSettings.php @@ -147,7 +147,7 @@ public function syncSettingFields(Section $section, $fields = []) 'help' => $item['description'] ?? '', 'order' => ++$order, 'validation' => $this->determineValidation($item), - 'settings' => array_merge($fieldtype->getSettings(), [ + 'settings' => array_merge($fieldtype->getSettings(), ($item['settings'] ?? []), [ 'default' => $item['default'] ?? '', 'override' => $item['override'] ?? false, 'options' => $this->formatSettingOptions($item['options'] ?? []), @@ -193,11 +193,10 @@ private function formatSettingOptions($options = []) */ private function determineValidation($setting): array { - if (!isset($setting['required'])) { - return []; + if (isset($setting['required']) && $setting['required'] === true) { + return ['value' => 'required']; } - - return $setting['required'] === true ? ['value' => 'required'] : []; + return ['value' => null]; } /** diff --git a/src/Http/Controllers/API/SettingController.php b/src/Http/Controllers/API/SettingController.php index f52b1574..5dd23d3d 100755 --- a/src/Http/Controllers/API/SettingController.php +++ b/src/Http/Controllers/API/SettingController.php @@ -65,6 +65,9 @@ public function update(SettingRequest $request, Setting $setting) foreach ($setting->blueprint->relationships() as $relationship) { $relationship->type()->persistRelationship($setting->settings, $relationship); } + + // Let new setting to take effect after the value of setting is updated + cache()->flush(); } diff --git a/src/Providers/FusionServiceProvider.php b/src/Providers/FusionServiceProvider.php index c6486044..4fef2317 100644 --- a/src/Providers/FusionServiceProvider.php +++ b/src/Providers/FusionServiceProvider.php @@ -156,10 +156,10 @@ private function registerAddonManifest() */ private function registerProviders() { + $this->app->register(FieldtypeServiceProvider::class); $this->app->register(BladeServiceProvider::class); $this->app->register(ConfigServiceProvider::class); $this->app->register(EventServiceProvider::class); - $this->app->register(FieldtypeServiceProvider::class); $this->app->register(MenuServiceProvider::class); $this->app->register(SettingServiceProvider::class); $this->app->register(ThemeServiceProvider::class);