Skip to content

Nova Settings is a Laravel Nova package providing a user-friendly interface for managing application settings using Spatie's settings package.

License

Notifications You must be signed in to change notification settings

ferdiunal/nova-settings

Repository files navigation

Nova Settings

WIP: This project is a Work in Progress. Features and documentation might change.

Nova Settings is a Laravel Nova package that provides an intuitive interface for managing settings using Spatie's settings package.

Screenshots

Installation

To install Nova Settings, you can use Composer:

composer require ferdiunal/nova-settings

After installing the package, you need to register the tool with Nova. Add the following to your NovaServiceProvider:

// in app/Providers/NovaServiceProvider.php

use Ferdiunal\NovaSettings\NovaSettings;

public function tools()
{
    return [
        new NovaSettings,
    ];
}

Create Settings Resource

php artisan make:settings-resource GeneralSettings --group General   
# Resource created successfully.
# Resource path: app/NovaSettings/GeneralSettings.php

Usage

After installation, you can access the settings interface from the Nova dashboard. This interface allows you to easily manage your application's settings without writing any additional code.

To use the SettingsHelper class, you can utilize the provided settings helper function. Here are some examples:

use function Ferdiunal\NovaSettings\settings;

// Accessing all settings
$allSettings = settings()->toArray();

// Accessing settings as a collection
$settingsCollection = settings()->toCollection(); // OR
$settingsCollection = settings("general")->toCollection();

// Converting settings to JSON
$jsonSettings = settings()->toJson(); // OR
$jsonSettings = settings("general")->toJson();

// Accessing a specific group of settings
$generalSettings = settings('general')->toArray();

// Accessing a specific setting within a group
$specificSetting = settings('general')->site_name;
$specificSetting = settings('general')->site_name();

// Accessing a nested setting directly
$nestedSetting = settings('general.site_name');

Configuration

Make sure you have Spatie's settings package installed and configured in your Laravel application. You can follow the official documentation for detailed instructions.

Features

  • Easy integration with Laravel Nova
  • User-friendly settings management interface
  • Compatible with Spatie's settings package

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an issue.

License This package is open-sourced software licensed under the MIT license.