cube-agency / filament-constructor
用于 Filament 的块构造器
v1.0.2
2024-07-05 08:16 UTC
Requires
- php: ^8.2
- filament/forms: ^3.0
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.10|^8.1
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
README
用于创建多个字段组的 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 的一些选项。
- 添加标签
public function title(): string { return __('Text block'); }
- 添加图标
public function icon(): string { return 'heroicon-o-chat-bubble-left-right'; }
- 添加 maxItems
public function maxItems(): int { return 1; }
- 添加列
public function columns(): int { return 6; }
要将 Builder 选项添加到构造器中,请在页面模板中定义构造器字段时添加它们。例如
Constructor::make('blocks') ->collapsible() ->collapsed()
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅我们的安全策略。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件。