Laravel 5.3与Accessor的总和

时间:2017-01-19 02:55:02

标签: laravel laravel-5.3

我不知道如何解决这个问题。

class Transaction extends Model{
    public function getTransSubtotalAttribute( $value ){
        return number_format($value, 2, '.', ',');
    }        
}

使用汇总sum

<p><strong> Total Subtotal: {{ $trans->sum('trans_subtotal') }}</strong></p>

它变为整数。例如3366.00,输出只有3。  我知道这是来自accessor,因为如果我删除accessor,我会得到所需的结果,即3366.00

1 个答案:

答案 0 :(得分:1)

假设您有关于$ trans变量的数据。您可以使用laravel集合获得总数。

$total = collect($trans)->map(function($value){
    return $value->getOriginal('trans_subtotal');
})->sum();

然后,使用number_format,如

number_format($total, 2, '.', ',');

编辑:

将getSum添加到模型

public function getSum($trans, $field){ 
    $total = collect($trans)->map(function($value) use ($field) { 
        return $value->getOriginal($field); 
    })->sum(); 
    return number_format($total, 2, '.', ','); 
} 

然后像

那样访问它
$value->getSum($trans, 'trans_subtotal');