relaticle/custom-fields
Laravel/Filament plugin to add dynamic custom fields to any Eloquent model without migrations. Includes 20+ field types, conditional visibility, tenant isolation, admin UI integration (forms/tables/infolists), CSV import/export, optional encryption, and extensible field types.
Add the Custom Fields plugin to your panel:
use Relaticle\CustomFields\CustomFieldsPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugins([
CustomFieldsPlugin::make(),
]);
}
Implement the interface and use the trait:
use Illuminate\Database\Eloquent\Model;
use Relaticle\CustomFields\Models\Concerns\UsesCustomFields;
use Relaticle\CustomFields\Models\Contracts\HasCustomFields;
class Customer extends Model implements HasCustomFields
{
use UsesCustomFields;
}
Add custom fields to your resource form:
use Relaticle\CustomFields\Facades\CustomFields;
public static function form(Schema $schema): Schema
{
return $schema
->components([
// Your existing fields...
Forms\Components\TextInput::make('name'),
Forms\Components\TextInput::make('email'),
// Add Custom Fields
CustomFields::form()->build()->columnSpanFull()
]);
}
Display custom fields in your table:
use Relaticle\CustomFields\Facades\CustomFields;
public static function table(Table $table): Table
{
return $table
->columns([
// Your existing columns...
Tables\Columns\TextColumn::make('name'),
Tables\Columns\TextColumn::make('email'),
// Add custom field columns
...CustomFields::table()
->forModel($table->getModel())
->columns(),
])
->filters([
// Add custom field filters
...CustomFields::table()
->forModel($table->getModel())
->filters(),
]);
}
For view pages, include custom fields:
public static function infolist(Schema $schema): Schema
{
return $schema
->components([
// Your existing components...
// Add Custom Fields
CustomFields::infolist()
->forSchema($schema)
->build(),
]);
}
Your resource now has dynamic custom fields! Users can:
How can I help you explore Laravel packages today?