Laravel中行的所有列的总和

时间:2014-12-23 00:09:40

标签: php laravel laravel-4

如何使用Laravel找出MySQL中某行的某些列的总和?

我知道->sum('something');会为您提供一列的总和。但是一排呢?

Laravel有没有办法这样做?

目前,我手动添加每个列值并获取总和。

3 个答案:

答案 0 :(得分:1)

只需创建一个模型函数并将所有变量传递给它并在那里进行计算。然后返回总数并打印到您想要的任何位置。

{{Classmodel::total($yourvariablearray)}}

Classmodel.php中你会有类似的内容:

public static function total($variablearray){
  return $total = $variablearray->columnone +  $variablearray->columntwo;
}

这应该有效。

答案 1 :(得分:1)

没有内置方法可以做到这一点,但你可以自己编写一个函数。嗯,实际上,我已经为你做了! ;)

您有两种选择。无聊的,一个只返回预定义总和的函数:

public function getSum(){
    return $this->value1 + $this->value2; // and so on
}

或者泛型函数,您可以放在BaseModel中并在每个类中使用并使用您想要的每个属性:

public function getAttributeSum(){
    $sum = 0;
    foreach(func_get_args() as $attribute){
        $sum += $this->getAttribute($attribute);
    }
    return $sum;
}

你这样称呼它:

$model->getAttributeSum('value1', 'value2');

答案 2 :(得分:0)

这个怎么样

  

return \ DB :: table('table_name') - > sum('column_to_be_calculated');

适用于laravel 5。