我有一个包含关系的事务集合,我想对按关系列条件分隔的列求和。现在我有这个:
$delegatedProvision = 0;
$ownProvision = 0;
foreach ($transactions as $transaction) {
if ($transaction->discount->consider_improvement) {
$delegatedProvision += $transaction->stats->$column;
continue;
}
$ownProvision += $transaction->stats->$column;
}
$this->salesCollection->put('delegatedProvision', $delegatedProvision);
$this->salesCollection->put('ownProvision', $ownProvision);
它可以工作,但是我想使用Laravel集合。到目前为止,我只有这样:
$provision = $transactions->sum(function ($transaction) use ($column) {
return $transaction->stats->$column;
});
我不知道如何在sum()方法中使用条件,并且根据列$transaction->discount->consider_improvement
(为布尔值)在单独的变量中有总和。我可以为每个不同的consider_improvement
使用过滤器,但这意味着我必须将所有事务重复两次。
答案 0 :(得分:0)
尝试一下:
$collection->where(/* your condition */)->sum($column);