如何在Laravel Filament表格汇总中处理Sum::make()计算值?
在Laravel Filament表格汇总中对Sum结果进行除以1000的处理
你可以通过两种方式实现求和结果除以1000的需求:
方式一:应用层修改汇总结果
使用Sum类的modifyUsing方法,在查询得到求和结果后直接进行数值处理:
use Filament\Tables\Columns\Summarizers\Sum; use Filament\Tables\Columns\TextColumn; TextColumn::make('price') ->summarize( Sum::make() ->modifyUsing(fn($sum) => $sum / 1000) // 可选:自定义汇总行的显示标签 ->label('总价(千单位)') )
modifyUsing接收一个闭包,参数$sum是原始的求和结果,你可以在闭包内对其进行任意数值处理后返回。
方式二:数据库查询阶段直接计算
如果希望让数据库直接完成求和并除以1000的操作,可通过query方法自定义查询逻辑:
use Filament\Tables\Columns\Summarizers\Sum; use Filament\Tables\Columns\TextColumn; TextColumn::make('price') ->summarize( Sum::make() ->query(fn($query) => $query->selectRaw('SUM(price) / 1000 as sum')) )
这种方式减少了应用层的计算开销,适合数据量较大的场景。
内容的提问来源于stack exchange,提问作者user15254140
相关产品推荐
相关产品推荐

