nova-kit / nova-field-mixins
Laravel Nova 字段混入
v2.2.0
2024-04-23 00:35 UTC
Requires
- php: ^8.0
- illuminate/support: ^8.67 || ^9.0 || ^10.0 || ^11.0
- laravel/nova: ^4.14
Requires (Dev)
- nova-kit/nova-packages-tool: ^1.3.4
- nunomaduro/larastan: ^1.0.1 || ^2.0.1
- orchestra/canvas: ^6.2 || ^7.0 || ^8.0 || ^9.0
- orchestra/testbench: ^6.38 || ^7.30 || ^8.10 || ^9.0
- phpunit/phpunit: ^9.6 || ^10.5
README
安装
要通过composer安装,请从终端运行以下命令
composer require "nova-kit/nova-field-mixins"
用法
Laravel Nova 字段混入可以用来将一组常见的配置应用于字段,而不需要重复。例如:
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()),
通过添加以下类 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()); } }
现在您可以这样编写上面的例子
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),
可用混入
处理 AsArrayobject
类型转换
本包为 AsArrayObject
提供默认的转换实现。
use Laravel\Nova\Fields\Text; use NovaKit\Fields\Mixins\AsArrayObject; Text::make('Name', 'profile.name')->apply(new AsArrayObject()),
您也可以通过使用 fromArrayObject
宏来简化这一过程。
use Laravel\Nova\Fields\Text; Text::make('Name', 'profile.name')->fromArrayObject(),