1. Go to this page and download the library: Download stepanenko3/nova-settings library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
stepanenko3 / nova-settings example snippets
// in app/Providers/NovaServiceProvder.php
// ...
public function tools()
{
return [
// ...
new \Stepanenko3\NovaSettings\NovaSettingsTool(),
];
}
// in app/Nova/Settings/Demo.php
namespace App\Nova\Settings;
use Laravel\Nova\Fields\Boolean;
use Stepanenko3\NovaSettings\Types\AbstractType;
class Demo extends AbstractType
{
public function fields(): array
{
return [
Boolean::make('Param 1', 'param_1'),
Boolean::make('Param 2', 'param_2'),
Boolean::make('Param 3', 'param_3'),
];
}
}
// in app/Nova/Settings/Demo.php
namespace App\Nova\Settings;
use Eminiarts\Tabs\Tab;
use Eminiarts\Tabs\Tabs;
use Laravel\Nova\Fields\Boolean;
use Stepanenko3\NovaSettings\Types\AbstractType;
class Demo extends AbstractType
{
public function fields(): array
{
return [
Boolean::make('Param 1', 'param_1'),
Boolean::make('Param 2', 'param_2'),
Boolean::make('Param 3', 'param_3'),
new Tabs('Tabs 1', [
new Tab('Tab 1', [
Boolean::make('Param 1', 'param_1'),
Boolean::make('Param 2', 'param_2'),
Boolean::make('Param 3', 'param_3'),
]),
new Tab('Tab 2', [
Boolean::make('Param 1', 'param_1'),
Boolean::make('Param 2', 'param_2'),
Boolean::make('Param 3', 'param_3'),
]),
new Tab('Tab 3', [
Boolean::make('Param 1', 'param_1'),
Boolean::make('Param 2', 'param_2'),
Boolean::make('Param 3', 'param_3'),
]),
]),
];
}
}
// in app/Models/Settings.php
namespace App\Models;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
class Settings extends \Stepanenko3\NovaSettings\Models\Settings
{
use LogsActivity;
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()
->logFillable()
->logOnlyDirty();
}
}
php
// in app/Nova/Settings.php
namespace App\Nova;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\HasMany;
class Settings extends \Stepanenko3\NovaSettings\Resources\Settings
{
public function fields(Request $request)
{
return array_merge(parent::fields($request), [
HasMany::make('Activities', 'activities', 'App\Nova\ActivityLog'),
]);
}
}