public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('title')
->sortable(true, function (Builder $query, string $direction) {
$query->orderByRaw("JSON_UNQUOTE(JSON_EXTRACT(title, '$.en')) $direction");
})
->searchable(query: function (Builder $query, string $search): Builder {
return $query
->where('title', 'like', "%{$search}%")
->orWhereRaw('LOWER(`title`) LIKE LOWER(?)', ["%{$search}%"]);
}),
Tables\Columns\TextColumn::make('subclusterable.title')
->label('Parent'),
Tables\Columns\TextColumn::make('author.name')
->sortable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('title')
->sortable(true, function (Builder $query, string $direction) {
$query->orderByRaw("JSON_UNQUOTE(JSON_EXTRACT(title, '$.en')) $direction");
})
->searchable(query: function (Builder $query, string $search): Builder {
return $query
->where('title', 'like', "%{$search}%")
->orWhereRaw('LOWER(`title`) LIKE LOWER(?)', ["%{$search}%"]);
}),
Tables\Columns\TextColumn::make('subclusterable.title')
->label('Parent'),
Tables\Columns\TextColumn::make('author.name')
->sortable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
}