Laravel Filament 表格列使用state() 方法进行状态计算,如果你需要对列字段的状态进行计算显示,而非直接显示从数据库字段中读取的内容。

那么可以传入回调函数到 state() 方法中:

TablesColumnsTextColumn::make('amount_including_vat')
    ->state(function (Model $record): float {
        return $record->amount * (1 + $record->vat_rate);
})

比如招生专业分为普通类和艺术类,这两个分类写在配置文件 sys 中:

'fields' => [
    'PUTONG' => '普通类',
    'YISHU' => '艺术类',
],

数据库中存储的是 PUTONG 或者 YISHU,显示的时候我们想要显示为中文,可以按照如下方式:

TablesColumnsTextColumn::make('field')
    ->state(function ($record){
        return config('sys.fields')[$record->field]??'';
})