如何使用Laravel找出MySQL中某行的某些列的总和?
我知道->sum('something');
会为您提供一列的总和。但是一排呢?
Laravel有没有办法这样做?
目前,我手动添加每个列值并获取总和。
答案 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。