文本列
概述
文本列(TextColumn)用来展示数据库中的简单文本:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('title')
显示为"徽章"
默认情况下,文本非常简单,没有背景色。您可以使用 "badge()" 方法将其显示为"徽章"。这方面的一个很好的用例是状态,其中可能需要显示与状态相匹配的颜色徽章:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('status')
->badge()
->color(fn (string $state): string => match ($state) {
'draft' => 'gray',
'reviewing' => 'warning',
'published' => 'success',
'rejected' => 'danger',
})
你也添加其他诸如图标到徽章中。
显示描述
描述用于在列内容上面或下面渲染额外的文本。
使用 description()
方法,你可以在文本列的内容下面显示描述:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('title')
->description(fn (Post $record): string => $record->description)
默认情况下,描述显示在主文本下方,不过你也可以使用第二个参数将其移到文本上方:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('title')
->description(fn (Post $record): string => $record->description, position: 'above')
日期格式化
你可以使用 date()
和 dateTime()
方法,通过 PHP 日期格式化 token 来格式化列状态:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('created_at')
->dateTime()
你也可以使用 since()
方法,借由 Carbon 的 diffForHumans()
来格式化列状态:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('created_at')
->since()
数字格式化
numeric()
方法允许你使用 PHP 的 number_format()
将列格式化成数字:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('stock')
->numeric(
decimalPlaces: 0,
decimalSeparator: '.',
thousandsSeparator: ',',
)