php: ^7.4 | ^8
laravel/nova: ^4
You can install the package in to a Laravel app that uses Nova via composer:
composer require winglife/laravel-nova-tabs
// app/Nova/User.php
namespace App\Nova;
use Illuminate\Validation\Rules;
use Laravel\Nova\Fields\Gravatar;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Password;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Http\Requests\NovaRequest;
use Winglife\LaravelNovaTabs\Tab;
use Winglife\LaravelNovaTabs\Tabs;
class User extends Resource
{
public function fields(NovaRequest $request)
{
return [
Tabs::make('Test', [
Tab::make('One', [
ID::make()->sortable(),
Gravatar::make()->maxWidth(50),
Text::make('Email')
->sortable()
->rules('required', 'email', 'max:254')
->creationRules('unique:users,email')
->updateRules('unique:users,email,{{resourceId}}'),
]),
Tab::make('Two', [
Text::make('Name')
->sortable()
->rules('required', 'max:255'),
Text::make('Email')
->sortable()
->rules('required', 'email', 'max:254')
->creationRules('unique:users,email')
->updateRules('unique:users,email,{{resourceId}}'),
]),
Tab::make('Tree', [
Password::make('Password')
->onlyOnForms()
->creationRules('required', Rules\Password::defaults())
->updateRules('nullable', Rules\Password::defaults()),
]),
]),
];
}