我想在一列中显示我交易表中一个/所有帐户的总余额。余额列应显示余额加上前一行的总余额。我的GridView代码是
<?php
$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
'account_no',
'credit',
'debit',
[
'label' => 'Balance',
'value' => function ($model) {
return $model::Balance();
}
],
'created_date:date',
];
?>
Run Code Online (Sandbox Code Playgroud)
我模型中的代码如下。我可以通过对Deptransaction :: findOne(1)进行硬编码来获取第一行值。
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;
}
Run Code Online (Sandbox Code Playgroud)
我在gridview中尝试了以下代码,但仅显示单个行的余额
'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;
},
Run Code Online (Sandbox Code Playgroud)
在GridView中:
<?php
$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
'account_no',
'credit',
'debit',
[
'label' => 'Balance',
'value' => function ($model) {
return $model->Balance();
}
],
'created_date:date',
];
?>
Run Code Online (Sandbox Code Playgroud)
模型:
public function Balance()
{
$data = DepTransaction::findOne($this->id);
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;
}
Run Code Online (Sandbox Code Playgroud)
小智 0
尝试这个
public static function Balance()
{
$data = DepTransaction::find($this->id);
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16794 次 |
| 最近记录: |