DEV Community

Horacio Degiorgi
Horacio Degiorgi

Posted on

2

Mejoras en las tablas

Algunas mejoras en las listas de Filament.

Description (o linea adicional en la celda)

 Tables\Columns\TextColumn::make('name')->searchable()->sortable()->wrap()
                ->description(fn (Repository $record): string => $record->institution->name??'')

Enter fullscreen mode Exit fullscreen mode

Image description

Badges (distintivo) en campo de tipo texto

//campo type tiene varios valores definidos en un array (ojs->OJS, etc) 
Tables\Columns\BadgeColumn::make('type')->enum(Repository::$typesform),
Enter fullscreen mode Exit fullscreen mode

Image description

Ocultar columnas

con el método ->toggleable(isToggledHiddenByDefault: true) se puede ocultar la Columna y luego activarla desde el ícono de la derecha.

Actualizar valor desde la tabla

Image description

Con el método action se puede disparar una actualizacion en la celda.

    ->action(function($record, $column) {
        $name = $column->getName();
        $record->update([
            $name => !$record->$name
        ]);
    });
Enter fullscreen mode Exit fullscreen mode

Definir orden default

// en la definición del recurso 
protected function getDefaultTableSortColumn(): ?string
        {
            return 'id';
        }

    protected function getDefaultTableSortDirection(): ?string
        {
            return 'desc';
        }
Enter fullscreen mode Exit fullscreen mode

Enlazar a otro modelo

Se puede crear una macro en el método Boot de AppServiceProvider y enlazar entre modelos usando la función linkRecord luego. Fuente (el modelo dependiente está conectado al modelo institution con la columna name)
en lugar de

Tables\Columns\TextColumn::make('institution.name')
->url(fn (Library $record): string => route('filament.resources.institutions.view', ['record' => $record->institution_id]))
Enter fullscreen mode Exit fullscreen mode

Se puede usar

Tables\Columns\TextColumn::make('institution.name')->linkRecord('view')

Enter fullscreen mode Exit fullscreen mode

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs