Ich möchte den Gesamtbetrag von einem/alle Konto aus meiner Transaktionstabelle in einer Spalte anzeigen. In der Spalte "Balance" sollte der Saldo angezeigt werden, der den Gesamtbetrag der vorherigen Zeile addiert. Mein gridview Code istYii2 Gridview benutzerdefinierte Spalte Wert
<?php
$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
'account_no',
'credit',
'debit',
[
'label' => 'Balance',
'value' => function ($model) {
return $model::Balance();
}
],
'created_date:date',
];
?>
und der Code in meinem Modell ist unten angegeben. Ich kann den ersten Zeilenwert erhalten, indem ich Deptransaction :: findOne (1) hartkodiere.
public static function Balance()
{
$data = DepTransaction::find();
if($data->credit != 0){
$cap_bal = $cap_bal +($data->credit - $data->debit);
}
if($data->debit != 0){
$int_bal = $int_bal + ($data->credit - $data->debit);
}
$total = $cap_bal+$int_bal;
return $total;
}
das Ergebnis anzuzeigen ich den Code unten in meinem Gridview versucht, aber es Bilanz für die einzelnen Zeile angezeigt werden nur
'value' => function($data) {
if($data['head_type']=="CAP"){
$cap_bal = $cap_bal +($data['credit']-$data['debit']);
}
if($data['head_type']=="INT"){
$int_bal = $int_bal+($data['credit']-$data['debit']);
}
$total = $total + $cap_bal+$int_bal;
return $total;
},
Haben Sie die Lösung für Ihr Problem finden? –
irgendein glück ingetting antwort? –