Easy Laravel nested settings (stored in MYSQL) package with MoonShine Laravel Admin GUI
visual-ideas/laravel-site-settings is a Laravel package for easy laravel nested settings (stored in mysql) package with moonshine laravel admin gui.
It currently has 14 GitHub stars and 439 downloads on Packagist (latest version 1.11.2).
Install it with composer require visual-ideas/laravel-site-settings.
Discover more Laravel packages by visual-ideas
or browse all Laravel packages to compare alternatives.
Last updated
Easy laravel cached settings (stored in MYSQL) package with MoonShine/Filament Laravel Admin GUI
You can install the package via composer:
composer require visual-ideas/laravel-site-settings
You must run the migrations with:
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --provider="VI\LaravelSiteSettings\LaravelSiteSettingsProvider" --tag="config"
This is the contents of the published config file:
return [
'cache_key' => env('LSS_CACHE_KEY','laravel_site_settings_data'),
// Set to true if you're using Filament (https://filamentphp.com/)
'filament' => false,
];
You can use this package as default laravel config() function!
function settings($key = null, $default = null)
{
if (is_null($key)) {
return app('Settings')->all();
}
if (is_array($key)) {
return app('Settings')->set($key);
}
return app('Settings')->get($key, $default);
}
or Blade directive @settings
@settings('group.setting')
For PHPStorm you can set this blade directive with This instruction
or as part of native Laravel config()
@config('settings.group.setting')
Not working in console!
You can use models VI\LaravelSiteSettings\Models\SettingGroup and VI\LaravelSiteSettings\Models\Setting
or set settings values with the settings() function:
settings(['group.setting' => 'Value']);
settings(['setting' => 'Value']);
Please see MoonShine
You can use settings in your MoonShine admin panel, like this:
MenuGroup::make('Settings', [
MenuItem::make(
'Setting groups',
new \VI\LaravelSiteSettings\MoonShine\Resources\SettingGroupResource(),
'heroicons.outline.wrench-screwdriver'
),
MenuItem::make(
'Settings',
new \VI\LaravelSiteSettings\MoonShine\Resources\SettingResource(),
'heroicons.outline.wrench'
),
], 'heroicons.outline.cog-8-tooth'),
Please see Filament
You can use settings in your Filament admin panel!
Just change config file:
//...
// Set to true if you're using Filament (https://filamentphp.com/)
'filament' => true,
//...
I recommend saving the settings in the seeders using the orangehill/iseed package:
php artisan iseed setting_groups,settings
But you can use seeder or migration to set your settings
settings([
['group.setting1' => 'Value1'],
['group.setting2' => 'Value2'],
['group.setting3' => 'Value3'],
['setting1' => 'Value4'],
['setting2' => 'Value5'],
['setting3' => 'Value6'],
['setting4' => 'Value7'],
['setting5' => 'Value8']
]);
The MIT License (MIT). Please see License File for more information.