by Martin Hwang
Repeater In Table Layout
You can install the package via composer:
composer require icetalker/filament-table-repeater
You can publish the views using
php artisan vendor:publish --tag="filament-table-repeater-views"
use Icetalker\FilamentTableRepeater\Forms\Components\TableRepeater; protected function getFormSchema(): array{ return [ ... Forms\Components\Grid::make(1)->schema([ TableRepeater::make('items') ->relationship('items') ->schema([ Forms\Components\TextInput::make('product'), ... ]) ->collapsible() ->defaultItems(3), ]), ];}
Since this component extends from
Filament\Forms\Components\Repeater
, you can use most of its methods, except for a few methods likeinset()
,grid()
,columns()
.
To customize styles for each cell, you can pass an array of component name as key and css style as value to colStyles(). See example below:
use Icetalker\FilamentTableRepeater\Forms\Components\TableRepeater; protected function getFormSchema(): array{ return [ ... Forms\Components\Grid::make(1)->schema([ TableRepeater::make('items') ->relationship('items') ->schema([ Forms\Components\TextInput::make('product'), Forms\Components\TextInput::make('quantity'), ... ]) ->colStyles([ 'product' => 'color: #0000ff; width: 250px;', ]), ]), ];}