Dynamically create configuration items for your resources.
Laravel Nova.
First install the Nova package via composer:
composer require ofcold/nova-configurations-field
Publish the config file:
php artisan vendor:publish --provider="Ofcold\\Configurations\\FieldServiceProvider"
Then run the migration
php artisan migrate
Add configuration item cache key in your .env
File
OFCOLD_CONFIGURATION_KEY=config
Configure different resources
use Ofcold\Configurations\Configurations;
/**
* Get the fields displayed by the resource.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Configurations::make('Configurations')
->setConfigurations([
Text::make('foo'),
Text::make('bar')
], 'example')
];
}
Get configuration item from scope
use Ofcold\Configurations\Repository;
Repository::scopeItems($scope)
Get a single configuration
use Ofcold\Configurations\Repository;
// Use scope and key
// Example: example::foo
Repository::get('example::foo')
Get a single configuration value
use Ofcold\Configurations\Repository;
// Use scope and key
// Example: example::foo
Repository::getValue('example::foo')