Easy laravel cached settings (stored in MYSQL) package with MoonShine Laravel Admin GUI
You can install the package via composer:
composer require visual-ideas/laravel-seoable
You must run the migrations with:
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --provider="VI\LaravelSeoable\LaravelSeoableProvider" --tag="config"
This is the contents of the published config file:
return [
'cache_key' => env('LSS_CACHE_KEY','laravel_site_settings_data'),
];
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\LaravelSeoable\Models\SettingGroup and VI\LaravelSeoable\Models\Setting
or set settings values with the settings() function:
settings(['group.setting' => 'Value']);
settings(['setting' => 'Value']);
Please see MoonShine
You can publish two MoonShine Resources with command:
php artisan vendor:publish --provider="VI\LaravelSeoable\LaravelSeoableProvider" --tag="moonshine"
and use them in your MoonShine admin panel, like this:
MenuGroup::make('Settings', [
MenuItem::make('Settings', SettingResource::class)->icon('app'),
MenuItem::make('Settings groups', SettingGroupResource::class)->icon('app'),
])->icon('app'),
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.