reedware / nova-field-manager
创建一个字段外观,以便引用字段。
v1.0.2
2021-06-13 21:54 UTC
Requires
- php: >=7.1.0
- illuminate/support: >=5.6
README
此包提供了便利,无需在资源类声明中包含每个字段的类路径。将创建一个新的 Field
外观,您可以通过它来延迟所有字段的创建。
安装
使用 composer 需要此包。
composer require reedware/nova-field-manager
Laravel 5.5+ 使用包自动发现,因此无需手动添加服务提供者或外观。但是,如果您仍然需要引用它们,以下是它们的类路径
\Reedware\NovaFieldManager\NovaFieldManagerServiceProvider::class // Service Provider \Reedware\NovaFieldManager\Facade::class // Facade
使用方法
现在您可以通过使用 Field
外观来向您的 Nova 资源添加字段,而无需在资源类定义中包含每个字段。
/** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function fields(Request $request) { return [ Field::id()->sortable(), Field::text('Name', 'display_name') ->sortable() ->rules('required', 'max:100'), Field::textarea('Description') ->rules('max:255'), Field::hasMany('Tasks', 'tasks', Task::class), Field::number('Tasks', function() { return $this->tasks_count; }) ]; }
自定义字段
所有字段都在 nova-fields
配置文件中配置。首先,您需要创建自己的副本,可以通过运行 php artisan vendor:publish
命令,或者从本仓库(位于 ~/config/nova-fields.php
)中复制配置文件目录来实现。
您可以通过操作此配置文件轻松添加自己的字段(或覆盖默认字段)。配置键(id
、text
、hasMany
等)是从 Field
外观可以调用的方法。配置值是字段的类路径,其中对 Field::<key>(...)
的调用相当于对 <value>::make(...)
的调用。
Nova 提供的默认字段将自动添加,即使它们不在您的配置文件中。但是,如果您覆盖了其中一个默认字段(通过指定相同的键名),则您的字段将覆盖默认的 Nova 字段。
<?php return [ /** * Custom Fields */ 'custom' => \NovaComponents\CustomField\Field::class ];
/** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function fields(Request $request) { return [ Field::custom(...) ]; }