This is where your description should go. Limit it to a paragraph or two. Consider adding a small example.
You can install the package via composer:
composer require linhntaim/advanced-fieldsOptionally, you can publish the views using
php artisan vendor:publish --tag="advanced-fields-views"Currently, supports: RadioGrid, CheckboxGrid.
use Filament\Schemas\Schema;
use LinhntAim\AdvancedFields\RadioGrid;
use LinhntAim\AdvancedFields\CheckboxGrid;
public function mount(): void
{
$this->form->fill([
// format of the state used for RadioGrid
'filled_radio_grid' => [
'row_1' => 'column_c',
'row_2' => 'column_b',
'row_3' => 'column_a',
],
// format of the state used for CheckboxGrid
'filled_checkbox_grid' => [
'row_1' => [
'column_c',
'column_a',
],
'row_2' => [
'column_b',
'column_c',
],
'row_3' => [
'column_a',
'column_b',
],
],
]);
}
public function form(Schema $schema): Schema
{
return $schema->components([
...,
RadioGrid::make('radio_grid')
->options([
'column_a' => 'Column A',
'column_b' => 'Column B',
'column_c' => 'Column C',
])
->rows([
'row_1' => 'Row 1',
'row_2' => 'Row 2',
'row_3' => 'Row 3',
])
// optionally, (one) radio must be checked in each row
->required()
// optionally, disable specific column option(s)
->disableOptionWhen(fn($value) => $value == 'column_b')
// optionally, set the label of the "Clear selection" button
// - note: the button will be shown after checking any radio if not required
->clearButtonLabel('X'),
...,
CheckboxGrid::make('checkbox_grid')
->options([
'column_a' => 'Column A',
'column_b' => 'Column B',
'column_c' => 'Column C',
])
->rows([
'row_1' => 'Row 1',
'row_2' => 'Row 2',
'row_3' => 'Row 3',
])
// optionally, at least one checkbox must be checked in each row
->required()
// optionally, disable specific column option(s)
->disableOptionWhen(fn($value) => $value == 'column_b'),
...,
]);
}
Please see CHANGELOG for more information on what has changed recently.
The MIT License (MIT). Please see License File for more information.

