Cgridview Ile Listeleme Yaparken Gelen Sonuçtaki Id Numarasının Karşılığı Ismi Nasıl Gösteririz.

Arkadaşlar merhabalar başlık tuhaf olabilir ama ne yazacağımı bilemedim. Üye bilgilerini CGridView ile listeliyorum. Veritabanına kan grubunu direk isimleriyle değilde id ile yani şu şekilde kaydetmiştim :


array('1'=>'A Rh (+)','2'=>'A Rh (-)','3'=>'B Rh (+)','4'=>'B Rh (-)','5'=>'AB Rh (+)','6'=>'AB Rh (-)','7'=>'0 Rh (+)','8'=>'0 Rh (-)'),array('empty' =>('Kan Grubu Seçiniz') ))

Şimdi bilgileri CGridView listelediğimde kan grubunun altında id numaraları görünüyor. bu alanda id değilde kan grubu isimlerinin A Rh (+) vb. şekilde yazmasını istiyorum. Ve view dosyasında şu şekilde bir yapı kullanıyorum ama


Parse error: syntax error, unexpected ':' in D:\wamp\www\yii\framework\base\CComponent.php(612) : eval()'d code on line 1

şeklinde hata veriyor.


View dosyasında kullandığım yapı aşağıdaki gibi 


 array(

                    'name' => 'kan_grubu',

                    'type' => 'raw',

                    'value' => 'CHtml::encode($data->kan_grubu=="1")?("A Rh (+)")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"A Rh (-)")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"B Rh (+)")',

                    'filter'=> $kangrubunagore,

                ),

Birde şöyle bir durum var cinsiyet için aşağıdaki yapıyı kullandım hata vermeden sorunsuz çalışıyor.


array(

                    'name' => 'cinsiyet',

                    'type' => 'raw',

                    'value' => 'CHtml::encode($data->cinsiyet=="1")?("Erkek")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"Kadın")',

                    'filter'=> $cinsiyetegore,

                ),

bir yerde yazım hatası yapıyorum ama nerede bilmiyorum yardımcı olabilir misiniz?

if else koşulunda aşagıdaki yapın yanlış olmuş


($data->kan_grubu=="1")?("A Rh (+)")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"A Rh (-)")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"B Rh (+)")

onun yerine kangrubu listen db de degilse model e koyup aşagdaki gibi yapsan


(isset($data->kan_grubu_listem[$data->kan_grubu])?$data->kan_grubu_listem[$data->kan_grubu]:'')

Aslında problem Yii’nin söz dizimine alısmamış olmam ve öğrenme yolunda olmam.Ben modelde şöyle fonksiyon oluşturdum. İşlev olarak sizinki ile aynı görevi görüyor sanırım ama hangisi daha performanslı olur acaba?


 public function kangrubu()

    {

       switch($this->kan_grubu){

           case "1":

               return "A Rh (+)";

               break;

           case "2":

               return "A Rh (-)";

               break;

           case "3":

               return "B Rh (+)";

               break;

           case "4":

               return " B Rh (-)";

               break;

           case "5":

               return "AB Rh (+)";

               break;

           case "6":

               return "AB Rh (-)";

           case "7":

               return "0 Rh (+)";

               break;

           case "8":

               return "0 Rh (-)";

               break;

           default:

               return "Kan grubu yok";


       }


    }