Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Custom Fields

Custom Fields Laravel Package

relaticle/custom-fields

Laravel/Filament plugin that adds dynamic custom fields to any Eloquent model without database migrations. Supports 20+ field types, conditional visibility, multi-tenancy, CSV import/export, optional encryption, and custom field types.

View on GitHub
Deep Wiki
Context7

Custom Fields is a Laravel/Filament plugin that adds dynamic custom fields to any Eloquent model without database migrations. Simply implement the HasCustomFields contract, apply the UsesCustomFields trait, and render fields in your Filament forms via CustomFields::form()->build().

Built for real-world applications, it supports 20+ field types, conditional visibility, multi-tenancy, and optional field encryption with type-safe validation.

  • 20+ field types — text, date, select, file upload, rich editor, and more
  • Conditional visibility — show or hide fields based on other values
  • Multi-tenancy — complete tenant isolation and context management
  • Filament integration — forms, tables, infolists, and admin UI
  • Import/Export — built-in CSV support, plus custom field types
Frequently asked questions about Custom Fields
How do I install and set up relaticle/custom-fields in a Laravel Filament panel?
Install it with Composer, then register CustomFieldsPlugin::make() in the plugins array of your Filament panel provider. On each model that needs custom fields, implement the HasCustomFields contract and use the UsesCustomFields trait. Finally, drop CustomFields::form()->build() into your existing Filament schema, and the same fluent builder is available for tables and infolists.
Do custom fields require new database migrations on my Eloquent models?
No. The package stores user-defined field definitions and values in its own tables, so you never add columns to your application's models or write migrations for each new field. Users create and edit fields through the Filament admin interface at runtime. That is what makes it a schema-less EAV-style layer rather than a code-generation approach.
Which PHP, Laravel, and Filament versions does this package support?
The current 3.x line requires PHP 8.3+, Laravel 12 or 13, and Filament 5.0 or newer. The 2.x line targets Filament 4 and is effectively frozen, so if you are still on an older Filament major you are pinned to an older branch. Check the compatibility table in the repository before planning an upgrade.
What field types are included, and can I define my own custom field types?
The package ships with more than 20 field types, including text, date, select, file upload, and a rich text editor, all rendered natively through Filament components. It is extensible: you can build your own field type classes and the package discovers them automatically. Type-safe validation and casting are handled per field type.
How does conditional visibility work for custom fields?
Each field can define conditions based on the values of other fields, so it is shown or hidden dynamically as users fill out a form. The same visibility rules apply across forms, tables, and infolists, keeping the authoring and display experiences consistent. The visibility engine is one of the more complex parts of the package, so verify behavior against your specific field combinations, especially in infolists and section layouts.
How does multi-tenancy work with custom fields?
The package provides tenant isolation and a tenant context resolver, so field definitions and values are scoped to the current tenant. You should review how that resolver maps onto your existing tenancy model, whether that is a shared database with a tenant_id column or a database-per-tenant setup. Multi-tenancy is present and working, but it needs a design review rather than simple wiring.
Can custom field values be encrypted, and what limitations does that introduce?
Yes, encryption is optional per field, which is useful for sensitive values stored alongside regular custom fields. The trade-off is that encrypted values cannot be filtered or sorted on the server side, so table filters, ordering, and full-fidelity CSV exports are effectively unavailable for those fields. Decide early which fields genuinely need encryption so you do not silently lose queryable behavior.
Does the package support CSV import and export of custom field data?
Yes, built-in CSV import and export capabilities are included for custom field values. Export fidelity depends on field configuration, since encrypted fields and some structured value types such as phone and email fields serialized as JSON may round-trip differently. Test a representative export and re-import against your own field set before relying on it operationally.
What should I expect when upgrading across Filament major versions?
The package follows a deliberate one-major-per-Filament-major cadence, so a Filament upgrade forces a package major upgrade. The 3.0.0 release moved from Filament 4 to Filament 5 and Laravel 11 to 12, changed stored data formats for phone and email fields, and requires running vendor/bin/custom-fields-upgrade. Treat each Filament major as an upgrade project that includes migrating customer-authored field data, not a routine Composer bump.
What license does relaticle/custom-fields use, and do I need a commercial license?
The package is AGPL-3.0 with a dual commercial track. For a closed-source or SaaS product, AGPL network-use terms would reach your whole application, so you need to purchase a commercial license before you deploy. Commercial pricing, term, redistribution rights, and continuity terms are not published in the repository, so confirm those details with the vendor before committing.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums