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'); + } +}