Getting Started

Tables

Configure list screens with typed columns, filters, sorting, and pagination.

Tables drive list and index screens and are backed by Eloquent queries.

Example

<?php

use Pepperfm\Flashboard\Contracts\Tables\TableContract;
use Pepperfm\Flashboard\Core\Tables\Columns\BadgeColumn;
use Pepperfm\Flashboard\Core\Tables\Columns\TextColumn;
use Pepperfm\Flashboard\Core\Tables\Filters\SelectFilter;

public static function table(TableContract $table): TableContract
{
    return $table
        ->columns([
            TextColumn::make('id')
                ->label('ID')
                ->sortable(),
            BadgeColumn::make('status')
                ->label('Status')
                ->searchable(),
        ])
        ->filters([
            SelectFilter::make('status')
                ->label('Status'),
        ])
        ->pagination(25);
}

Typed columns and filters are the preferred public API. Legacy array definitions still work while the package continues its DSL migration.

Query behavior

ResourceListDataSource currently supports:

  • search across columns marked searchable
  • sort across columns marked sortable
  • simple filter key/value pairs from the request
  • Eloquent pagination with query-string preservation

Extension points

  • queryExtensions() for custom query mutation
  • payloadExtensions() for post-assembly table payload changes

Debugging

Use JSON responses on resource routes to inspect:

  • normalized table schema
  • dataset rows
  • pagination metadata
  • filtered action visibility