5

CGridView yiiで問題が発生し、払い戻しフィールドに0/1が表示されますが、2番目のテーブルを使用せずに、0の場合は「はい」、1の場合は「いいえ」を表示したいと思います。

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'transaction-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
    'id',
    'member_id',
     array(
        'header' => 'MemberName',
        'name' => 'member_id',
        'value' => '$data->member->f_name'
    ),

    'refund',
    'band_id',

    array(
        'class'=>'CButtonColumn',
        'template'=>'{view}',
    ),
),

));

4

6 に答える 6

19

他の答えは両方とも機能しますが、それを行う最もクリーンな方法は次のとおりです。

'columns'=>array(
    'id',
    'member_id',

    ...

    'refund:boolean',
),

上記のようにコロンを使用すると自動使用されるCGridView列データ型がたくさんあります。詳細はこちら:https ://github.com/samdark/a-guide-to-yii-grids-lists-and-data-providers/blob/master/grid-columns.md

于 2012-07-17T02:05:44.233 に答える
4

これで問題が解決することを願っています。

「払い戻し」をこのコードに置き換えます。

 array(
            'header' => 'Refund',
            'name' => 'refund',
            'value' => '($data->refund == 0) ? "Yes" : "No"'
        ),
于 2012-07-16T14:00:34.903 に答える
4
 array(
                    'name' => 'refund',
                    'header' => "Refund",
                    'value' => '$data->refund?Yii::t(\'app\',\'Yes\'):Yii::t(\'app\', \'No\')',
                    'filter' => array('0' => Yii::t('app', 'No'), '1' => Yii::t('app', 'Yes')),
                    'htmlOptions' => array('style' => "text-align:center;"),
              ),
于 2012-07-16T09:52:48.670 に答える
1

ブールフィールドをCGridView使用して表示するname:type:header場合は、列を作成するときの形式を使用して、タイプをブールとして指定します。例えば

$this->widget('zii.widgets.grid.CGridView', array(
    ...
    'columns'=>array(
       'id',
       'refund:boolean',
),

フィールドCActiveFormの表示方法を変更する場合は、チェックボックスまたはドロップダウンリストのいずれかを使用するようにrenderメソッドを変更します。ドロップダウンリストを使用すると、値をnullに戻すことができます。

$form->dropDownList($model,'refund', array(null=>"Not checked", 0=>"No", 1=>"Yes"));
于 2013-01-07T21:57:25.330 に答える
0

クイックフィックス:次のように置き換えます'refund',

        array(
        'name' => 'refund',
        'type' => 'raw',
        'value' => function($model){
            return $model->refund == 1 ? 'No' : 'Yes';
        }
    ),
于 2018-11-08T07:31:03.903 に答える
-1

ビュー内の名前ADMIN.PHP

array('name' =>'status'、'header' =>'status'、'filter' => array( '1' =>'Inacive'、 '2' =>'Active')、'value' = >'($ data-> status == "1")?( "Inacive"):( "Active")')、

于 2013-11-22T11:47:51.380 に答える