cube-agency / filament-constructor
Block constructor for Filament
v1.0.1
2024-03-12 16:05 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 plugin for creating multiple field groups
Installation
You can install the package via composer:
composer require cube-agency/filament-constructor
You can publish the config file with:
php artisan vendor:publish --tag="filament-constructor-config"
Usage
Create your constructor block by using console command:
php artisan filament-constructor:create-block DoubleText
this will create a new class in 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'), ]; } }
Add it to config
return [ 'blocks' => [ 'double_text' => \App\Filament\Constructor\Blocks\DoubleTextBlock::class, ], ];
Then add this field to your form
use CubeAgency\FilamentConstructor\Filament\Forms\Components\Constructor; public static function form(Form $form): Form { return $form ->schema([ // ... Constructor::make('blocks'), // ... ]); }
Or you can create multiple block groups and use different blocks in each resource
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')), // ... ]); }
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.