reedware/nova-field-manager

创建一个字段外观,以便引用字段。

v1.0.2 2021-06-13 21:54 UTC

This package is auto-updated.

Last update: 2024-09-14 05:19:03 UTC


README

此包提供了便利,无需在资源类声明中包含每个字段的类路径。将创建一个新的 Field 外观,您可以通过它来延迟所有字段的创建。

Latest Stable Version Total Downloads License

安装

使用 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)中复制配置文件目录来实现。

您可以通过操作此配置文件轻松添加自己的字段(或覆盖默认字段)。配置键(idtexthasMany 等)是从 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(...)
    ];
}