2012-07-16 46 views
5

我被困在CGridView yii中的一個問題,我的退款字段顯示0/1,但我想要顯示「是」如果0和「否」如果是1,而不使用任何第二個表。如何根據標誌字段0/1顯示「是/否」CGridView yii?

$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}', 
    ), 
), 

));

回答

3
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;"), 
      ), 
+0

我得到以下錯誤:'包括($數據 - >批准的Yii :: T( '應用', '是'):Yii的。 php):未能打開流:沒有這樣的文件或目錄。 – SPRBRN 2013-09-04 08:21:08

+0

你應該檢查你的腳本爲什麼組成這個醜陋的文件名,這是一些類型的PHP代碼。 – Pentium10 2013-09-11 17:34:58

+0

更好/完整答案低於 – redDevil 2015-01-06 19:14:51

4

希望這能解決您的問題。

用此代碼替換「退款」。

array(
      'header' => 'Refund', 
      'name' => 'refund', 
      'value' => '($data->refund == 0) ? "Yes" : "No"' 
     ), 
+0

這也不起作用 – user1045373 2012-07-19 09:04:38

+0

這是wrking ... – user1045373 2012-07-19 09:12:20

+0

對我來說,這顯示'($ data-> refund == 0)? 「是」:「否」',所以不是實際值是或否 – SPRBRN 2013-09-04 08:08:01

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

+0

謝謝!該鏈接非常有用。選項包括:日期,時間,日期時間,編號,電子郵件,網址,圖像,原始文本,文本,ntext和html。 – SPRBRN 2013-09-04 08:11:05

+0

這是不是被標記爲接受? – DaSourcerer 2013-11-22 11:55:15

+0

Pentium在第二天寫下我之前得到了他的答案(並且被接受);-) – acorncom 2013-11-22 17:50:32

1

當在CGridView中顯示布爾型字段時,在創建列時將使用name:type:header格式將類型指定爲布爾型。例如。

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

如果你想改變字段顯示在CActiveForm變化的渲染方法爲使用複選框或下拉列表的方式。我的首選是下拉列表,因爲它可以讓您選擇將值設回爲空。

$form->dropDownList($model,'refund', array(null=>"Not checked", 0=>"No", 1=>"Yes")); 
-1

視圖中的名字admin.php的

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

相關問題