gugoan gugoan - 7 months ago 703
PHP Question

Yii2 Gridview - How use totals on footer property

My VALUE column is:

[
'attribute' => 'value',
'format' => 'raw',
'contentOptions'=>['style'=>'width: 10%;text-align:left'],
'footer' => ???
],


How use totals of rows on FOOTER property ?

Answer

it's works 1. create class then 2.create column array, 3.configure column, 4.configure grid

namespace app\components;
class PTotal {
public static function pageTotal($provider, $fieldName)
{
    $total=0;
    foreach($provider as $item){
        $total+=$item[$fieldName];
    }
    return $total;
}
$provider = new ActiveDataProvider([
'query' => $query,
'sort' => $sort,
]);


$grid_columns=[         
[
    'attribute' => 'saldo_in',
    'footer'=>PTotal::pageTotal($provider->models,'saldo_in'),
]
]

echo GridView::widget([
'dataProvider' => $provider,
'showFooter'=>TRUE,
'footerRowOptions'=>['style'=>'font-weight:bold;text-decoration: underline;'],
'columns' =>$grid_columns,
]);