Skip to content

Columns

Columns are declared in columnsConfig() and define what the datagrid can render, search, and sort.

protected function columnsConfig(): array
{
    return [
        new Column('id', 'ID', StringFormatter::class, true, false, true),
        new Column('name', 'Name', StringFormatter::class, true, true, true),
        new Column('created_at', 'Created at', DateTimeFormatter::class, true, false, true),
    ];
}

Constructor Arguments

new Column(
    name: 'name',
    label: 'Name',
    formatterClass: StringFormatter::class,
    isSortable: true,
    isSearchable: true,
    isVisible: true,
    aliasName: null,
    tdClass: '',
    thClass: '',
)

Dotted Column Names

Use dotted names when the SQL column needs a table prefix:

new Column('users.email', 'Email', StringFormatter::class, true, true, true, aliasName: 'email')

The full name is used for query operations. The alias/select name is used when reading transformed resource rows.

Formatters

Built-in formatters include:

  • StringFormatter
  • DateFormatter
  • DateTimeFormatter

Date formatters return an empty string for null values and throw a clear exception for invalid non-null date values.