nova-kit / nova-field-mixins
Laravel Nova Field Mixins
Installs: 6 110
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 1
Open Issues: 1
Requires
- php: ^8.1
- illuminate/support: ^10.34|^11.0|^12.0
Requires (Dev)
- laravel/nova: ^5.2
- laravel/nova-devtool: ^1.6
- laravel/pint: ^1.20
- orchestra/pest-plugin-testbench: ^2.0|^3.0
- phpstan/phpstan: ^2.1
Conflicts
- laravel/nova: <5.2.0|>=6.0.0
README
Installation
To install through composer, run the following command from the terminal:
composer require "nova-kit/nova-field-mixins"
Usages
Laravel Nova Field Mixins are useful for applying a common set of configurations to a 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 the 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 the 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 provides 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(),