2014-12-23 3 views
1

Как узнать сумму определенных столбцов строки в MySQL с помощью Laravel?Сумма всех столбцов строк в Laravel

Я знаю ->sum('something'); дает вам сумму столбца. Но как насчет ряда?

Есть ли способ сделать это в Laravel?

В настоящее время я добавляю каждое значение столбца вручную и получаю сумму.

+0

Нет встроенного способа. Вы действительно хотите получить сумму всех столбцов или только * некоторых * столбцов? – lukasgeiter

+0

Всего несколько столбцов – user1012181

ответ

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'); 
+0

Добро пожаловать :) – lukasgeiter

1

Просто создайте функцию модели и передайте ей все переменные и выполните вычисления там. Затем верните итоговые данные и распечатайте их там, где вы хотите.

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

В Classmodel.php вы будете иметь что-то вроде:

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

Это должно работать.

0

Как об этом

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

Работы для laravel 5.