2012-07-16 4 views
5

私はCGridView yiiの問題に悩まされています。私の払い戻しフィールドは0/1ですが、0の場合は「はい」を、1の場合は「いいえ」を、2番目のテーブルは使用しません。フラグフィールド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

をADMIN.PHP: '含める($データ - >は、承認のYii ::トン( 'アプリ'、 'はい'):?Yiiのを。 php):ストリームを開くことに失敗しました:そのようなファイルやディレクトリはありません。 – SPRBRN

+0

あなたは何らかのPHPコードであるその醜いファイル名をスクリプトが作成する理由をチェックするべきです。 – Pentium10

+0

より良い/完全な回答 – redDevil

4

これが問題を解決します。

「払い戻し」をこのコードに置き換えてください。

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

これも動作していません – user1045373

+0

これはうんざりしています... – user1045373

+0

私のために、これは '($ data-> refund == 0)を表示しますか? 「はい」:「いいえ」です。実際の値ではありません。はいまたはいいえ。 – SPRBRN

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

ありがとうございます!そのリンクは非常に便利です。オプションは、日付、時刻、日時、番号、電子メール、URL、イメージ、生、テキスト、ntext、およびhtmlです。 – SPRBRN

+0

これはどのように受け入れられたとマークされていませんか? – DaSourcerer

+0

ペンティアムは翌日に私の手紙を書く前に彼の答えを得た(そして受け入れた); – acorncom

1

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

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

あなたはフィールドがCActiveForm変更のチェックボックスやドロップダウンリストのいずれかを使用するためのrenderメソッドを表示方法を変更したい場合。値をnullに戻すオプションが用意されているので、私のプリファレンスはドロップダウンリストです。 VIEWS名に

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

は、私は次のエラーを取得する

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

関連する問題