From 71be6d9bfd36f3acbc9610c181986dd40d37f258 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Wed, 29 Dec 2021 10:42:49 +0800 Subject: [PATCH] read config from database --- app/Models/Setting.php | 13 +++++++ app/Providers/AppServiceProvider.php | 12 ++++++- composer.json | 1 + ...021_12_29_021603_create_settings_table.php | 34 +++++++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 app/Models/Setting.php create mode 100644 database/migrations/2021_12_29_021603_create_settings_table.php diff --git a/app/Models/Setting.php b/app/Models/Setting.php new file mode 100644 index 00000000..7a6a07f7 --- /dev/null +++ b/app/Models/Setting.php @@ -0,0 +1,13 @@ +keyBy('name') + ->transform(function ($setting) { + if ($setting->json) { + return \json_decode($setting->value, true); + } + return $setting->value; + }) + ->toArray(); + config(['global' => $settingsFromDB]); } } diff --git a/composer.json b/composer.json index 70afede5..75e5ecf3 100644 --- a/composer.json +++ b/composer.json @@ -6,6 +6,7 @@ "license": "MIT", "require": { "php": "^7.3|^8.0", + "ext-json": "*", "fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^7.0.1", "laravel/framework": "^8.65", diff --git a/database/migrations/2021_12_29_021603_create_settings_table.php b/database/migrations/2021_12_29_021603_create_settings_table.php new file mode 100644 index 00000000..5ae5ccc6 --- /dev/null +++ b/database/migrations/2021_12_29_021603_create_settings_table.php @@ -0,0 +1,34 @@ +id(); + $table->string('name'); + $table->string('value'); + $table->boolean('json')->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('settings'); + } +}