Skip to content

arqel-dev/table — Referencia de API

Namespace Arqel\Table\. Builder fluido, 12 tipos de columna, 8 tipos de filtro, query builder.

Arqel\Table\Table (final)

Builder principal.

MétodoTipoDescripción
Table::make()selfFactory
columns(array<Column>)selfLista de columnas
filters(array<Filter>)selfLista de filtros
actions(array<Action>)selfRowActions
bulkActions(array<Action>)selfBulkActions (requieren selectable)
toolbarActions(array<Action>)selfToolbarActions
defaultSort(string $column, string $direction='asc')self
perPage(int) / perPageOptions(array<int>)selfPaginación
searchable(bool=true) / selectable(bool=true)self
striped(bool=true) / compact(bool=true)self
emptyState(array)self['icon', 'title', 'description']
toArray()arraySchema serializado para Inertia

Columns

Arqel\Table\Column (abstract). Factory: Column::make($name) retorna TextColumn por defecto.

ClaseCaso de usoSetters extra
TextColumnString/text por defectolimit(int), wrap(bool)
BadgeColumnEstado con colorescolors(array), icons(array)
BooleanColumnCheckmarktrueIcon, falseIcon, trueColor, falseColor
DateColumnFechas formateadasdate(string), dateTime(string), since(), timezone(string)
NumberColumnNumérico alineado a la derechadecimals(int), prefix, suffix
IconColumnIcono únicooptions(array), size(string)
ImageColumnThumbnaildisk(string), circular(), square(), size(int)
RelationshipColumnRelación con eager-loadmake(name) + ->display(attribute)
ComputedColumnDerivado por Closurefactory make(name, Closure)
SelectColumnCelda select editableoptions(array|Closure), rules(array), debounce(int)
TextInputColumnCelda text-input inline editablerules(array), debounce(int), readonly(bool)
ToggleColumnCelda toggle editableonValue(mixed), offValue(mixed), debounce(int)

Setters comunes (en todas): label, sortable(bool), searchable(bool), hidden(bool), hiddenOnMobile(bool), align(string), width(string), tooltip(string\|Closure).

Filters

Arqel\Table\Filter (abstract). Factory: Filter::make($name) (pero usa las clases concretas).

ClaseCaso de usoSetters extra
SelectFilterPicker de un valoroptions(array|Closure)
MultiSelectFilterPicker multi-valoroptions(array|Closure)
DateRangeFilterrango start/end(sin setters extra)
TextFilterBúsqueda Likecolumn(string)
TernaryFiltertrue/false/allcolumn(string), trueLabel, falseLabel
ScopeFilterscope Eloquentfactory make($name, $scopeName)
QueryBuilderFilterÁrbol visual de condiciones (grupos AND/OR)constraints(array<Constraint>)
TrashedFilterSoft-delete tres estados (without/with/only)(sin setters extra)

Setters comunes: label, apply(Closure) (override de query), default(mixed), placeholder(string).

Arqel\Table\TableQueryBuilder (final)

Orquesta request → query Eloquent.

MétodoDescripción
__construct(Table $table, Builder $query, Request $request)Constructor (new TableQueryBuilder(...))
build(): LengthAwarePaginatorAplica search/filter/sort/eager-load + paginate (paginate() es privado)

Sort whitelisted contra columnas sortable. per_page validado contra perPageOptions. Eager loading inferido desde RelationshipColumn.

Relacionado

Licencia MIT — construido con Inertia + React + Laravel.