Weave Code
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

Filament Studio Laravel Package

flexpik/filament-studio

View on GitHub
Deep Wiki
Context7

Hooks & Events

Filament Studio provides a hook system for extending behavior at key lifecycle points and modifying dynamically generated schemas.

Lifecycle Hooks

Collection Created

Fired when a new collection is created:

FilamentStudioPlugin::afterCollectionCreated(function (StudioCollection $collection) {
    // Seed default fields, send notifications, sync external systems
    Notification::send($admins, new CollectionCreatedNotification($collection));
});

Field Added

Fired when a new field is added to a collection:

FilamentStudioPlugin::afterFieldAdded(function (StudioField $field) {
    // Validate constraints, trigger data sync, update search index
    Log::info("Field '{$field->label}' added to collection #{$field->collection_id}");
});

Tenant Created

Fired when a new tenant is created (instance-level hook):

FilamentStudioPlugin::make()
    ->afterTenantCreated(function (Model $tenant) {
        CollectionSeeder::seedForTenant($tenant->id, [...]);
    });

Schema Modification Hooks

These hooks let you modify the dynamically generated forms, tables, and queries for all collections.

Modify Form Schema

Add, remove, or reorder form components:

FilamentStudioPlugin::modifyFormSchema(function (array $schema, StudioCollection $collection) {
    // Add a custom component at the end
    $schema[] = Section::make('Metadata')
        ->schema([
            Placeholder::make('id')->content(fn ($record) => $record?->uuid),
        ]);

    return $schema;
});

Modify Table Columns

Add, remove, or reorder table columns:

FilamentStudioPlugin::modifyTableColumns(function (array $columns, StudioCollection $collection) {
    // Add a computed column
    $columns[] = TextColumn::make('age')
        ->label('Days Old')
        ->getStateUsing(fn ($record) => $record->created_at->diffInDays());

    return $columns;
});

Modify Query

Apply global scopes or filters to all collection queries:

FilamentStudioPlugin::modifyQuery(function ($query) {
    // Only show records created in the last 30 days
    return $query->where('created_at', '>=', now()->subDays(30));
});

Resetting Hooks

For testing or reinitialization, all static hooks can be reset:

FilamentStudioPlugin::resetHooks();

Observer

The RecordVersioningObserver listens to StudioRecord update events and creates version snapshots when versioning is enabled. See Record Versioning for details.

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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky