2015-10-28 42 views
0

頁腳是一個字符串,如果我把「價值」工作正常,但在頁腳給我一個錯誤:如何在GridView控件定義頁腳中的值

trim() expects parameter 1 to be string, object given

GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'showFooter' => true, 
     'footerRowOptions'=>['style'=>'font-weight:bold;text-decoration: underline;'], 
     'columns' => [ 
      [ 
       'attribute' => 'XXX', 
       'format' => 'currency', 
       'value' => function($model) use ($anoFilter) { 
         return $model->getValorTotalParcelas($anoFilter); 
       }, 
       'footer' => function($model) use ($anoFilter) { 
        return $model->getValorTotal($anoFilter); 
       } 
      ] 
     ]) 

getValorTotal

public function getValorTotal($ano = null){ 
    $titulo = new FinlegadoTitulo(); 
    $valorTotalParcelas = $titulo->getValorTotalparcelasByClienteAndStatus(null,false,false,$ano); 
    return $valorTotalParcelas; 
} 

public function getValorTotalparcelasByClienteAndStatus($clienteId = null, $aberta = false, $vencida = false,$ano = null){ 
    $parcelas = FinlegadoTituloParcela::find()->joinWith(['finlegadoTitulo']); 
    if ($clienteId) { 
     $parcelas->andWhere(['finlegado_cliente_id' => $clienteId]); 
    } 
    if ($ano) { 
     $parcelas->andWhere('YEAR(tbl_finlegado_titulo_parcela.data_pagamento_previsto) = ' . $ano); 
    } 
    if($aberta){ 
     $parcelas->andWhere(['tbl_finlegado_titulo_parcela.pago' => null]); 
     $parcelas->andWhere("tbl_finlegado_titulo_parcela.status <> 'C'"); 
     $parcelas->andWhere("tbl_finlegado_titulo_parcela.status <> 'D'"); 
     if($vencida){ 
      $parcelas->andWhere('tbl_finlegado_titulo_parcela.data_pagamento_previsto < (NOW() - interval '.Yii::$app->params['delay_inadimplencia'].' day)'); 
     }else{ 
      $parcelas->andWhere('tbl_finlegado_titulo_parcela.data_pagamento_previsto >= NOW()'); 
     } 
    } else { 
     $parcelas->andWhere(['tbl_finlegado_titulo_parcela.pago' => true]); 
    } 

    return $parcelas->sum('valor_parcela'); 
} 

上面的代碼工作正常

+0

可以從模型$模型 - > getValorTotal($ anoFilter)發佈;方法代碼 –

+0

可以測試這個當你設置頁腳:return(string)$ model-> getValorTotal($ anoFilter); –

+0

但是什麼樣的結果給你$ titulo-> getValorTotalparcelasByClienteAndStatus(null,false,false,$ ano);請提供相關代碼或結果的var_dump。 – scaisEdge

回答

1

查看此文檔http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html 對於頁腳,您不能使用匿名函數,而只能使用字符串值。

,那麼你可以計算上你的價值了GridView控件和分配到頁腳

$parkFooter = $model->getValorTotal($anoFilter); 

........ 
'columns' => [ 
     [ 
      'attribute' => 'XXX', 
      'format' => 'currency', 
      'value' => function($model) use ($anoFilter) { 
        return $model->getValorTotalParcelas($anoFilter); 
      }, 
      'footer' => $parkFooter 
+0

您的回覆讓我知道解決方案。 –

相關問題