tapp / filament-form-builder
User facing form builder using Filament components
Fund package maintenance!
TappNetwork
Installs: 1
Dependents: 1
Suggesters: 0
Security: 0
Stars: 12
Watchers: 4
Forks: 2
Open Issues: 7
pkg:composer/tapp/filament-form-builder
Requires
- php: ^8.2
- filament/filament: ^4.0
- illuminate/contracts: ^10.0||^11.0||^12.0
- maatwebsite/excel: ^3.1
- spatie/eloquent-sortable: ^4.3
- spatie/laravel-medialibrary: ^11.12
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9||^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^10.0.0||^9.0.0||^8.22.0
- pestphp/pest: ^3.0||^2.34
- pestphp/pest-plugin-arch: ^3.0||^2.7
- pestphp/pest-plugin-laravel: ^3.0||^2.3
- phpstan/extension-installer: ^1.3||^2.0
- phpstan/phpstan-deprecation-rules: ^1.1||^2.0
- phpstan/phpstan-phpunit: ^1.3||^2.0
- spatie/laravel-ray: ^1.35
- dev-main
- 4.x-dev
- v4.0.4
- v1.55
- v1.31
- v1.30
- v1.29
- v1.28
- v1.27
- v1.26
- v1.25
- v1.24
- v1.23
- v1.22
- v1.21
- 1.4.0
- v1.2
- dev-update/filament-form-builder-v1.52
- dev-fix/mobile-responsive-forms-v4
- dev-fix/mobile-responsive-forms
- dev-dependabot/github_actions/stefanzweifel/git-auto-commit-action-7
- dev-dependabot/composer/filament/filament-tw-4.1
- dev-fix-error-when-select-is-converted-to-text
- dev-add-default-policies
- dev-add_filamen4_install_instructions
- dev-dependabot/github_actions/actions/checkout-5
- dev-Add-Wizard-Support
- dev-filament4
- dev-primary-button
- dev-repeater
- dev-form-show-bug
- dev-file-upload
- dev-can-we-add-a-preview-CU-868cwr2en
- dev-event
- dev-delete-entry-updates
- dev-l12
This package is auto-updated.
Last update: 2025-10-29 21:18:33 UTC
README
A Filament plugin and package that allows the creation of forms via the admin panel for collecting user data on the front end. Forms are composed of filament field components and support all Laravel validation rules. Form responses can be rendered on the front end of exported to .csv.
Requirements
- PHP 8.2+
- Laravel 11.0+
- Filament 3.0+
Dependencies
Version Compatibility
| Filament | Filament Form Builder |
|---|---|
| 3.x | 1.x |
| 4.x | 4.x |
Installing the Filament Forms Package
Install the plugin via Composer:
This package is not yet on packagist. Add the repository to your composer.json
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/TappNetwork/Filament-Form-Builder"
}
],
}
For Filament 3
composer require tapp/filament-form-builder:"^1.0"
For Filament 4
composer require tapp/filament-form-builder:"^4.0"
public and run migrations with
php artisan vendor:publish --tag="filament-form-builder-migrations"
Optional: Publish the package's views, translations, and config
You can publish the view file with:
php artisan vendor:publish --tag="filament-form-builder-views"
You can publish the config file with:
php artisan vendor:publish --tag="filament-form-builder-config"
Adding the plugin to a panel
Add this plugin to a panel on plugins() method (e.g. in app/Providers/Filament/AdminPanelProvider.php).
use Tapp\FilamentFormBuilder\FilamentFormBuilderPlugin; public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ FilamentFormBuilderPlugin::make(), //... ]); }
Configuring Tailwind:
Add this to your tailwind.config.js content section:
content: [
...
"./vendor/tapp/**/*.blade.php",
],
Disabling Redirect
You can disable the redirect when including the Form/Show component inside of another component by passing the 'blockRedirect' prop as follows
@livewire('tapp.filament-form-builder.livewire.filament-form.show', ['form' => $test->form, 'blockRedirect' => true])
Events
Livewire
The FilamentForm/Show component emits an 'entrySaved' event when a form entry is saved. You can handle this event in a parent component to as follows.
class ParentComponent extends Component
{
protected $listeners = ['entrySaved'];
public function entrySaved(FilamentFormUser $survey)
{
// custom logic you would like to add to form entry saving logic
}
}
Laravel
The component also emits a Laravel event that you can listen to in your event service provider
// In your EventServiceProvider.php protected $listen = [ \Tapp\FilamentFormBuilder\Events\EntrySaved::class => [ \App\Listeners\HandleFormSubmission::class, ], ]; // Create a listener class namespace App\Listeners; use Tapp\FilamentFormBuilder\Events\EntrySaved; class HandleFormSubmission { public function handle(EntrySaved $event): void { // Access the form entry $entry = $event->entry; // Perform actions with the form data // For example, send notifications, update other records, etc. } }