Advance Table Repeater
An advanced Filament v5 Repeater + RepeatableEntry that renders as a table with a column manager, drag-and-drop reorder, resizable columns, and per-column summarizers (sum / count / average / range).
Author:
Aureus ERP
Documentation
- Features
- Requirements
- Installation
- Quick start
- API reference
- Theming & customisation
- Testing
- Publishing resources
- Troubleshooting
- Security
- License
An advanced Filament v5 Repeater + RepeatableEntry that renders as a table with a column manager, drag-and-drop reorder, resizable columns, and per-column summarizers (sum / count / average / range).
#Features
- Table-view Repeater (form) with per-column headers, resizable widths, drag-and-drop reorder
- Table-view RepeatableEntry (infolist) for read-only rendering with the same visual
- Column manager modal — toggle column visibility, persisted in session across reloads
- Summarizers —
Sum,Count,Average,Range— rendered in a sticky footer - Hidden / required column markers out of the box
- Zero model coupling — pure Filament infrastructure, reusable in any app
- Full Pest test coverage
#Requirements
- PHP 8.2+
- Laravel 11+
- Filament v5+
#Installation
composer require aureuserp/advance-table-repeater
php artisan filament:assets
The plugin auto-discovers via extra.laravel.providers and auto-registers in every Filament panel.
#Quick start
#Form — table-view Repeater
use Webkul\AdvanceTableRepeater\Forms\Components\Repeater;
use Webkul\AdvanceTableRepeater\Forms\Components\Repeater\TableColumn;
use Webkul\AdvanceTableRepeater\Summarizers\Sum;
Repeater::make('order_lines')
->relationship()
->schema([
Select::make('product_id')->relationship('product', 'name')->required(),
TextInput::make('qty')->numeric()->required(),
TextInput::make('price')->numeric()->required(),
])
->table([
TableColumn::make('product_id')->label('Product')->resizable(),
TableColumn::make('qty')->label('Qty')->markAsRequired(),
TableColumn::make('price')->label('Price')->summarize(Sum::make()->label('Total')),
]);
#Infolist — read-only table
use Webkul\AdvanceTableRepeater\Infolists\Components\RepeatableEntry;
use Webkul\AdvanceTableRepeater\Infolists\Components\Repeater\TableColumn;
RepeatableEntry::make('order_lines')
->table([
TableColumn::make('product.name')->label('Product'),
TableColumn::make('qty')->label('Qty'),
TableColumn::make('price')->label('Price'),
]);
#API reference
#Repeater (forms) — extends Filament\Forms\Components\Repeater
| Method | Purpose |
|---|---|
->table(array<TableColumn> $columns) |
Switch rendering from default stacked layout to table layout |
->hasTableView() |
Check at runtime whether the repeater is in table mode |
->getTableColumns() / ->getMappedColumns() |
Inspect columns |
->getSummaryForColumn(string) / ->hasAnySummarizers() |
Summarizer introspection |
#RepeatableEntry (infolists) — extends Filament\Infolists\Components\RepeatableEntry
Same API as the form variant, plus:
| Method | Purpose |
|---|---|
->toEmbeddedTableHtml(array $record) |
Render a single row's table HTML for embedding (e.g. in mail templates) |
#TableColumn (forms variant) — fluent column definition
| Method | Purpose |
|---|---|
::make(string $name) |
Factory |
->label(string) |
Header label |
->hiddenHeaderLabel() |
Hide the header label while keeping the column |
->markAsRequired() |
Show a required asterisk |
->resizable(bool = true) / ->isResizable() |
Enable drag-to-resize |
->wrapHeader(bool = true) |
Allow header text to wrap |
->getMinWidth() / ->getMaxWidth() |
Width constraints |
#TableColumn (infolists variant) — simpler read-only column
::make() / ->label() / ->hiddenHeaderLabel() / ->isHeaderLabelHidden().
#Summarizers
| Class | Purpose |
|---|---|
Sum::make() |
Sum of column values |
Count::make() |
Row count |
Average::make() |
Arithmetic mean |
Range::make() |
min / max pair |
Summarizer (abstract) |
Extend to build your own |
All summarizers support ->label(string) and render in the table footer.
#Theming & customisation
Stable CSS hooks:
.fi-fo-table-repeater— outer wrapper.fi-fo-repeater-item— row.fi-fo-table-repeater-actions— action column.fi-fo-summarizer— footer totals row
Publish the Blade views to fork the table layout:
php artisan vendor:publish --tag="advance-table-repeater-views"
#Testing
vendor/bin/pest plugins/aureuserp/advance-table-repeater/tests/Feature
The suite covers architecture (base classes, trait usage, no debug calls), component instantiation, TableColumn fluent API, summarizer chainability.
#Publishing resources
php artisan vendor:publish --tag="advance-table-repeater-config"
php artisan vendor:publish --tag="advance-table-repeater-views"
#Troubleshooting
| Symptom | Fix |
|---|---|
Class Webkul\AdvanceTableRepeater\… not found |
composer dump-autoload -o && php artisan optimize:clear |
| Column manager modal doesn't open | Verify public/css/aureuserp/advance-table-repeater/advance-table-repeater.css exists; run php artisan filament:assets |
| Column visibility doesn't persist across reloads | Session driver must support writes (array driver loses state between requests) |
| Summarizers show blank | Confirm each TableColumn has a summarizer attached AND the column values are numeric |
#Security
Report vulnerabilities to support@webkul.com.
#License
MIT. See LICENSE.md.
The author
From the same author
Custom Fields
Let your end-users add dynamic fields to any Eloquent model + Filament resource at runtime, without writing a single migration. Ships an admin CRUD for managing field definitions, an Eloquent trait that auto-merges the new columns into your model's fillable/casts, a Filament resource trait with five merge helpers that inject fields into forms, tables, filters, infolists, and a runtime schema manager that creates the underlying DB columns for you.
Author:
Aureus ERP
Progress Bar
A feature-rich Filament v5 table column & infolist entry that renders progress as a horizontal bar. Built for dashboards, task progress, capacity gauges, skill levels, and any numeric value that fits on a 0–100% (or custom min–max) scale.
Author:
Aureus ERP
Progress Stepper
A feature-rich Filament v5 plugin that renders workflow state as an interactive arrow-stepper (form) or a read-only status bar (infolist). Built for business apps where orders, applications, or projects move through named states and you want every screen to show that progress visually.
Author:
Aureus ERP
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Spotlight Pro
Browse your Filament Panel with ease. Filament Spotlight Pro adds a Spotlight/Raycast like Command Palette to your Filament Panel.
Dennis Koch
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission