nova-kit / nova-field-mixins
Laravel Nova Field Mixins
Installs: 3 632
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 1
Open Issues: 1
Requires
- php: ^7.3 || ^8.0
- illuminate/support: ^8.67 || ^9.0 || ^10.0
- laravel/nova: ^4.14
Requires (Dev)
- nunomaduro/larastan: ^1.0.1 || ^2.0.1
- orchestra/canvas: ^6.2 || ^7.0 || ^8.0
- orchestra/testbench: ^6.25.1 || ^7.10.1 || ^8.0
- phpunit/phpunit: ^9.6
README
Installation
To install through composer, run the following command from terminal:
composer require "nova-kit/nova-field-mixins"
Usages
Laravel Nova Field Mixins is useful to apply set common set of configuration to Field without repeating it. E.g:
use Laravel\Nova\Fields\DateTime; DateTime::make('Created At')->sortable()->displayUsing(fn ($d) => $d?->diffForHumans()), DateTime::make('Updated At')->sortable()->displayUsing(fn ($d) => $d?->diffForHumans()),
By adding following class App\Nova\Fields\Mixins\StandardDateTime
:
<?php namespace App\Nova\Fields\Mixins; use Laravel\Nova\Fields\Field; class StandardDateTime { public function __invoke(Field $field) { $field->sortable()->displayUsing(fn ($d) => $d?->diffForHumans()); } }
You can now write above example as:
use App\Nova\Fields\Mixins\StandardDateTime; use Laravel\Nova\Fields\DateTime; DateTime::make('Created At')->apply(StandardDateTime::class), DateTime::make('Updated At')->apply(StandardDateTime::class),
Available Mixin
Handle AsArrayobject
Cast
This package provide a default implement casting for AsArrayObject
.
use Laravel\Nova\Fields\Text; use NovaKit\Fields\Mixins\AsArrayObject; Text::make('Name', 'profile.name')->apply(new AsArrayObject()),
You can also simplify this by using fromArrayObject
macro.
use Laravel\Nova\Fields\Text; Text::make('Name', 'profile.name')->fromArrayObject(),