nova-kit/nova-field-mixins

Laravel Nova 字段混入

v2.2.0 2024-04-23 00:35 UTC

This package is auto-updated.

Last update: 2024-09-16 03:06:08 UTC


README

tests Latest Stable Version Total Downloads Latest Unstable Version License Coverage Status

安装

要通过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(),