2012-07-16 4 views
5

Tôi bị kẹt trong một vấn đề trong CGridView yii, trường hoàn tiền của tôi hiển thị 0/1 nhưng tôi muốn hiển thị "Có" nếu 0 và "Không" nếu 1, không sử dụng bất kỳ bảng thứ hai nào.làm thế nào để hiển thị "Có/Không" CGridView yii tùy thuộc vào lĩnh vực cờ 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}', 
    ), 
), 

));

Trả lời

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

tôi nhận được lỗi sau: 'bao gồm ($ đĩa dữ liệu> phê duyệt Yii :: t ('ứng dụng', 'Có'): Yii. php): không thể mở luồng: Không có tệp hoặc thư mục nào'. – SPRBRN

+0

bạn nên kiểm tra lý do tại sao kịch bản của bạn soạn tên tệp xấu xí đó là một số loại mã php. – Pentium10

+0

câu trả lời tốt hơn/đầy đủ bên dưới – redDevil

4

Hy vọng điều này sẽ giải quyết được sự cố của bạn.

Thay thế "hoàn phí" bằng mã này.

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

điều này cũng không hoạt động – user1045373

+0

điều này đang được sửa ... – user1045373

+0

Đối với tôi, điều này hiển thị '($ data-> refund == 0)? "Có": "Không", vì vậy không phải giá trị thực Có hoặc không. – SPRBRN

19

Cả hai câu trả lời khác sẽ làm việc, nhưng cách sạch nhất để làm điều đó là:

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

    ... 

    'refund:boolean', 
), 

Có một loạt các CGridView kiểu dữ liệu cột đó được tự động sử dụng nếu bạn sử dụng dấu hai chấm như ở trên. Thông tin thêm tại đây: https://github.com/samdark/a-guide-to-yii-grids-lists-and-data-providers/blob/master/grid-columns.md

+0

Cảm ơn! Liên kết đó rất hữu ích. Tùy chọn là: ngày, giờ, ngày giờ, số, email, url, hình ảnh, nguyên, văn bản, ntext và html. – SPRBRN

+0

Cách này không được đánh dấu là được chấp nhận? – DaSourcerer

+0

Pentium nhận được câu trả lời của mình (và được chấp nhận) trước khi tôi viết thư của tôi vào ngày hôm sau ;-) – acorncom

1

Khi hiển thị trường boolean trong CGridView sử dụng định dạng name:type:header khi tạo cột để chỉ định loại làm boolean. Ví dụ.

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

Nếu bạn muốn thay đổi cách lĩnh vực này được hiển thị trong một sự thay đổi CActiveForm render phương pháp để sử dụng hoặc một hộp kiểm hoặc một danh sách thả xuống. Sở thích của tôi là danh sách thả xuống vì nó cung cấp cho bạn tùy chọn thiết lập giá trị trở về null.

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

TRÊN VIEWS TÊN admin.php

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