cube-agency/filament-constructor

用于 Filament 的块构造器

v1.0.2 2024-07-05 08:16 UTC

This package is auto-updated.

Last update: 2024-09-05 11:26:22 UTC


README

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

用于创建多个字段组的 Filament 插件

安装

您可以通过 composer 安装此包

composer require cube-agency/filament-constructor

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

php artisan vendor:publish --tag="filament-constructor-config"

用法

通过控制台命令创建您的构造器块

php artisan filament-constructor:create-block DoubleText

这将在 Filament\Constructor\Blocks 中创建一个新类

namespace App\Filament\Constructor\Blocks;

use CubeAgency\FilamentConstructor\Constructor\Blocks\BlockRenderer;
use Filament\Forms\Components\Textarea;

class DoubleTextBlock extends BlockRenderer
{
    public function name(): string
    {
        return 'double_text';
    }

    public function title(): string
    {
        return __('DoubleText');
    }

    public function schema(): array
    {
        return [
            Textarea::make('first_text'),
            Textarea::make('second_text'),
        ];
    }
}

将其添加到配置中

return [
    'blocks' => [
        'double_text' => \App\Filament\Constructor\Blocks\DoubleTextBlock::class,
    ],
];

然后将其字段添加到您的表单中

use CubeAgency\FilamentConstructor\Filament\Forms\Components\Constructor;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...
            Constructor::make('blocks'),
            // ...
        ]);
}

或者,您也可以创建多个块组,并在每个资源中使用不同的块

return [
    'blocks' => [
        'double_text' => \App\Filament\Constructor\Blocks\DoubleTextBlock::class,
    ],
    
    'image_blocks' => [
        'double_image' => \App\Filament\Constructor\Blocks\DoubleImageBlock::class,
    ],
];
use CubeAgency\FilamentConstructor\Filament\Forms\Components\Constructor;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...
            Constructor::make('blocks')->use(config('filament-constructor.image_blocks')),
            // ...
        ]);
}

选项

构造器块具有 Builder\Blocks 的一些选项。

  1. 添加标签
    public function title(): string
    {
        return __('Text block');
    }
  1. 添加图标
  public function icon(): string
   {
       return 'heroicon-o-chat-bubble-left-right';
   }
  1. 添加 maxItems
  public function maxItems(): int
   {
       return 1;
   }
  1. 添加列
  public function columns(): int
   {
       return 6;
   }

要将 Builder 选项添加到构造器中,请在页面模板中定义构造器字段时添加它们。例如

   Constructor::make('blocks')
    ->collapsible()
    ->collapsed()

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅我们的安全策略

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件