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

Filament Table Field Laravel Package

momenoor/filament-table-field

A Filament form component that renders an editable table field, letting users add, edit, and manage rows inline without leaving the form. Ideal for repeatable structured data.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install from Packagist once the package name is confirmed, e.g. composer require <vendor>/filament-table-field, and verify the Filament Forms/Tables version constraint in the README. v1.0.0 does not mention published assets or migrations.
  • Look first at the README usage example for the exact field namespace and configuration methods, then inspect the field class for the hook signatures and parent form/model injection contract.
  • First use case: manage child records inline inside a parent Resource form. For example, an Order form with a HasMany items relationship where users create, edit, and delete order items in a modal table without leaving the order page.
  • Minimal flow: add the field to the parent form, point it at the relationship, define the modal form schema and table columns, save the parent model, then verify child records were synced correctly.

Implementation Patterns

  • Use the field as a richer alternative to a simple Repeater when child records need table-style scanning, modal editing, and independent create/edit/delete actions.
  • For HasMany, bind the field to the relationship name and configure a compact modal schema for editable fields plus table columns for display fields such as name, quantity, status, or date.
  • For BelongsToMany, use the same inline CRUD pattern for related records, but verify pivot handling explicitly. v1.0.0 notes BelongsToMany support but does not describe pivot-column editing or attach/detach semantics.
  • Use beforeCreateRecord() and beforeUpdateRecord() for server-side defaults and context injection: tenant IDs, owner IDs, audit fields, or values derived from the parent form state. Return only the keys that should be merged into the modal form data.
  • Keep hook returns narrow. Returning a full record or unrelated keys can unexpectedly overwrite modal form data because hook return values are auto-merged.
  • Use default record values for static create-time defaults, and hooks for dynamic defaults that depend on the parent form or authenticated user.
  • Use the individual create/edit/delete disable options for read-only, append-only, or edit-only workflows. Pair UI disabling with policies/authorization; disabled buttons are not a security boundary.
  • Use custom table heading and empty-state messages to make dense parent forms understandable, especially when multiple relation tables appear on the same Resource page.
  • Keep the modal schema lean and rely on the table columns for scanability. Validate critical child fields in the modal schema rather than assuming parent form validation covers them.
  • On parent save, confirm the package’s sync behavior with your relationship configuration: correct relationship name, foreign keys, pivot table, and model fillable/casts. Test create, edit, delete, and parent validation failure flows.

Gotchas and Tips

  • v1.0.0 is an initial release. Treat the API as young, pin the version in composer.json, and monitor changelog entries before upgrading.
  • beforeDeleteRecord() is not available yet. If you need delete guards, cleanup, or audit logging, use model events, policies, or explicit relationship constraints for now.
  • Reordering is not available yet. If users expect drag-and-drop ordering, plan a temporary order_column workflow or wait for the announced support.
  • Package unit test coverage is listed as coming soon. Add application-level tests around modal CRUD, hook merging, parent save sync, validation failures, and authorization.
  • Hooks receive parent form state and model context, but on create pages the parent model may be unsaved. Do not assume $model->id exists inside hooks; use form state where appropriate.
  • Because changes sync on parent save, test what happens when the parent form fails validation or the save is cancelled. Confirm whether child modal changes are persisted, discarded, or left pending in your workflow.
  • Dynamic schema and column closures can become stale if they depend on parent fields that change after the modal opens. Use Filament’s reactive field patterns and test the interaction.
  • For BelongsToMany, verify whether pivot data is editable, how duplicates are prevented, and whether detaching a related record deletes it or only removes the association.
  • Default values and hook merges should not be used as the only enforcement for tenant or ownership fields. Apply server-side validation and policies as well.
  • Debugging tip: start with a single simple HasMany relationship and one text field, confirm create/edit/delete/sync, then add hooks, defaults, action toggles, and dynamic schemas one at a time. Log hook inputs and returns to catch unexpected merge behavior.
  • Official Filament plugin integration is not available yet. Use this as a form field component rather than assuming it registers a panel plugin.
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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style