Best laravel framework open-source packages.

Laravel nova tabs

Laravel Nova - Tabs
Updated 7 months ago

laravel-nova-tabs

Latest Stable Version Total Downloads Latest Unstable Version License

Requirements

  • php: ^7.4 | ^8
  • laravel/nova: ^4

Installation

You can install the package in to a Laravel app that uses Nova via composer:

composer require winglife/laravel-nova-tabs

Usage

// 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()),
                ]),
            ]),
        ];
    }