解决方案森林/纤维场组

1.0.7 2024-09-24 02:25 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:26:42 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

纤维场组是一个强大的Laravel包,它增强了Filament的表单构建功能。它允许您轻松地对表单字段进行分组和组织,从而改善表单的结构和可读性。使用此包,您可以创建可折叠的部分、选项卡或自定义布局,使复杂表单更容易管理和用户友好。

安装

  1. 您可以通过Composer安装此包
    composer require solution-forest/filament-field-group
  2. 在您的面板提供商中注册插件
     use SolutionForest\FilamentFieldGroup\FilamentFieldGroupPlugin;
    
     class AdminPanelProvider extends PanelProvider
     {
         public function panel(Panel $panel): Panel
         {
             return $panel
                 ->plugin(FilamentFieldGroupPlugin::make());
         }
     }
  3. 然后执行以下命令
    php artisan filament-field-group:install

发布配置、视图、翻译和迁移

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="filament-field-group-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="filament-field-group-config"

可选,您可以使用以下命令发布视图

php artisan vendor:publish --tag="filament-field-group-views"

这是已发布配置文件的内容

return [
    'enabled' => false,
    'models' => [
        'field' => \SolutionForest\FilamentFieldGroup\Models\Field::class,
        'field_group' => SolutionForest\FilamentFieldGroup\Models\FieldGroup::class,
    ],
    'table_names' => [
        'fields' => 'advanced_fields',
        'field_groups' => 'advanced_field_groups',
    ],
];

用法

  1. FilamentFieldGroupPlugin添加到您的面板中。
  2. 通过在配置文件中将enabled设置为true来启用字段组资源
// config/filament-field-group.php
return [
    'enabled' => true,
    // ... other config options
];

或在FilamentFieldGroupPlugin上启用插件

use SolutionForest\FilamentFieldGroup\FilamentFieldGroupPlugin;
 
$panel
    ->plugin(FilamentFieldGroupPlugin::make()->enablePlugin());

Filament Field Group

  1. 创建字段组和字段,例如

    • 在您的Filament管理面板中导航到字段组资源。
    • 创建一个新的字段组(例如,“用户基本信息”)。
    • 向组中添加字段(例如,姓名、电子邮件等)。 创建字段组和字段 创建字段组和字段 创建字段组和字段
  2. 将字段组应用于您的表单模式

use SolutionForest\FilamentFieldGroup\Facades\FilamentFieldGroup;

public static function form(Form $form): Form
{
    return $form
        ->columns(1)
        ->schema([
            FilamentFieldGroup::findFieldGroup('user_basic'),
            FilamentFieldGroup::findFieldGroup('user_detail'),
        ]);
}

Apply Field Group

可用组件

目前,此包提供以下组件

  • 文本
  • 文本区域
  • 电子邮件
  • 密码
  • 数字
  • URL
  • 选择

将来可以添加更多组件。如果您有其他组件的想法,请随时提交pull request!

高级用法

自定义资源

您可以通过在FilamentFieldGroupPlugin上调用resources来添加/替换原始资源

use SolutionForest\FilamentFieldGroup\FilamentFieldGroupPlugin;
 
$panel
    ->plugin(FilamentFieldGroupPlugin::make()
        ->resources([
            // your resource
        ], override: true)
    );

自定义字段类型

您可以通过在FilamentFieldGroupPlugin上调用fieldTypeConfigs来添加/替换原始字段类型配置

use SolutionForest\FilamentFieldGroup\FilamentFieldGroupPlugin;
 
$panel
    ->plugin(FilamentFieldGroupPlugin::make()
        ->fieldTypeConfigs([
            // your field type config
        ], override: true)
    );

自定义模型

本节允许您自定义用于Filament Field Group包中字段组的模型。通过将默认的FieldGroup模型替换为您自己的实现,您可以扩展或修改其行为以适应您应用程序的需求。

为此,请使用FilamentFieldGroup外观的setFieldGroupModelClasssetFieldModelClass方法,指定原始模型和您的自定义模型。以下是一个示例

\SolutionForest\FilamentFieldGroup\Facades\FilamentFieldGroup::setFieldGroupModelClass(
    Your\Models\FieldGroup::class
);
\SolutionForest\FilamentFieldGroup\Facades\FilamentFieldGroup::setFieldModelClass(
    Your\Models\Field::class
);

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING获取详细信息。

我们欢迎贡献来提升此包。可能还会添加更多组件,因此请随时提交包含您的想法或改进的pull request。

安全漏洞

请查阅我们的安全策略了解如何报告安全漏洞。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。