0

Clistviewでdivを一度だけエコーしたい、アイテムはステータス順なので、ステータス1を印刷したい->すべてのアイテム、次にステータス2->そのステータスのすべてのアイテムを印刷したい、viewDataを試した、しかし、フラグの値を変更する方法がわかりません。

インデックス ビュー:

<div class="modal-body">
        <?php 
            $activos_flag = 1;
            $inactivos_flag = 1;
        ?>
        <?php 
            $this->widget('zii.widgets.grid.CListView', array(
                'id'=>'incs',
                'summaryText'=>'',
                'dataProvider'=>$dataProviderInc,
                'itemView'=>'_incidencias',
                'viewData'=> array('activo'=> $activos_flag,'inactivo'=>$inactivos_flag),
            ));
        ?>
    </div>

_インシデント ビュー:

<?php 
    if ($data->activo == 1 and $data->incidencia_estado == 1){
        echo ('<label class="incidencias">ACTIVOS</label>');
        $data->activo = 0;
    }
    if ($data->inactivo == 1 and $data->incidencia_estado == 0){
        echo ('<label class="incidencias">INACTIVOS</label>');
        $data->inactivo = 0;
    }
?>
4

1 に答える 1

1

$data配列( $data->inactivo) からではなく、変数から直接値を取得する必要があります$inactivo。しかし、いずれにせよ、各反復で、これらの変数の値は再び に等しくなり1ます。この場合、次のアプローチを使用できます: ウィジェット宣言の前:

Yii::app()->params['activos_flag']=1;
Yii::app()->params['inactivos_flag']=1;

そして部分的なビューで:

if ( Yii::app()->params['activos_flag'] == 1 ){
    echo ('<label class="incidencias">ACTIVOS</label>');
    Yii::app()->params['activos_flag'] = 0;
}
if ( Yii::app()->params['inactivos_flag'] == 1 ){
    echo ('<label class="incidencias">INACTIVOS</label>');
    Yii::app()->params['inactivos_flag'] = 0;
}
于 2014-03-06T15:37:14.430 に答える