- What is icetalker/filament-table-repeater used for?
- It is a Filament form component that extends Filament's native Repeater but renders repeatable fields in a table layout instead of the default stacked rows. It fits structured multi-row data entry such as order lines, inventory items, or configuration rows inside Laravel admin panels built with Filament. Because it extends Repeater, most of the Repeater API and workflow stays familiar.
- How do I install filament-table-repeater via Composer?
- Run composer require icetalker/filament-table-repeater in your Laravel project. Optionally publish the views with php artisan vendor:publish --tag="filament-table-repeater" if you want to customize the Blade templates. Then import Icetalker\FilamentTableRepeater\Forms\Components\TableRepeater in your form schema and use it like a normal Repeater.
- Which Filament and Laravel versions does filament-table-repeater support?
- The package is built on Filament v3.x's Repeater, with Laravel 10/11 and PHP 8.1+ inferred from Filament's own support matrix. Always check the package composer.json constraints before installing. Filament v4 compatibility is not documented, so review the GitHub repository and changelog before upgrading Filament majors.
- How do I use TableRepeater with a hasMany relationship?
- Call TableRepeater::make('items')->relationship('items')->schema([...]) inside your form, just like a standard Repeater. Define each column as a form component in the schema, such as TextInput::make('product'). If row order matters, model it explicitly with a sort column rather than relying only on array index.
- Which Repeater methods are not supported by TableRepeater?
- TableRepeater supports most Repeater methods but not inset(), grid(), or columns(), because the table layout controls those aspects. If you need a grid or column-based row layout, use a standard Repeater instead or test carefully. Other Repeater options like reorderable(), cloneable(), and collapsible() work as expected.
- How do I customize column cell styles with colStyles in TableRepeater?
- Pass an array of component names to colStyles, mapping each field to the styles you want applied to its table cell. The README documents this under the 'Other methods' section. For deeper visual changes, publish the package views and edit the Blade templates directly.
- How do I enforce minItems and maxItems limits on table rows?
- Chain ->minItems(3) and ->maxItems(5) on TableRepeater exactly as you would on a Repeater; the methods carry over. Filament handles the validation messages and prevents submitting outside those limits. For business rules such as unique combinations of columns, add custom validation on top.
- Is the row reordering bug fixed and which version should I pin?
- A row-reordering defect was fixed in v2.0.4, so pin v2.0.4 or later and avoid earlier 2.x builds where drag-and-drop order could be persisted incorrectly. If your data's display order matters, audit existing records for bad ordering. Re-test reordering on every patch bump, since the changelog note is terse and the change scope is unclear.
- Does TableRepeater perform well with large numbers of rows and how should I test it?
- The table layout renders every row, so responsiveness can degrade with large datasets; test with realistic counts such as 100 or more rows. Load-test the reordering interaction specifically, since v2.0.4 touches that path. If needed, split data into related models or limit row counts with maxItems.
- What are the alternatives to filament-table-repeater and is it maintained for Filament v4?
- Inside Filament, the closest alternative is the standard Repeater with a customized layout; outside Filament, a custom Livewire/Tailwind or Blade table component gives full control. The package is a small open-source project, so check GitHub activity and open issues before adopting it. Filament v4+ support is not documented, so plan a fallback if you upgrade Filament.