Formatter

Selam arkadaşlar, benim firebird dbim var ve içinde isk_orn diye alanım var türü de double.

DB yi değiştiremiyorum çünkü delphide yazılmış bir programın dbsi. Ben öğrenmek için web versiyonunu yazıyorum.

Sorunumda şudur bu alan "1.000", "2.000" gibi değerler tutuyor.

ben bunları listelerken

<?php echo $form->textField($model,‘isk_orn’);?> kullanıyorum CActiveform widget kullanarak.

Doğal olarak yii de listelerken "1.000" … vb şekilde listeliyor.

Delphide sadece bu verilerin tam kısımları gösteriliyor ve işliyor .

Ben bu verilerin sadece tam kısımlarını nasıl gösterebilirim. CFormatter classını veya nuber classını nasıl buna entegre edip kullanabilirim. Hiçbir fikrim yok bu konuda. Yardımlarınızı bekliyorum…

Number formatter kullanabilirsin,




$numberFormatter= new CNumberFormatter(Yii::app()->getLocale());

echo $numberFormatter->format('#',$value);




veya




echo Yii::app()->numberFormatter->format('#',$value);




@umutau çok teşekkür ederim cevap için. Fakat benim sorunum CActiveform üzerinde bunu nasıl birleştirebilirm kısmı.

<?php

echo $form->textField($model,‘isk_orn’);

echo Yii::app()->numberFormatter->format(’#’,$model->isk_orn);

?>

CActiveform dan bağımsız aynı name ile bir input oluşturup, value kısmına da modeldeki veri çekerek mi yapabiliyorum sadece bu var olan “$form->textField()” şekili kulllanıp sonucu formatter’a bağlayamıyormuyum ?

Şöyle bir denesen belki olur

<?php

echo $form->textField($model,‘isk_orn’,array(‘value’=>Yii::app()->numberFormatter->format(’#’,$model->isk_orn)));

?>

Cihan Ozturk çok sağol oldu tabiki. Bu kadar basit aslında değil mi… :)

Eger Model da afterFind function i kullanman daha guzel bi cozum olacagi kanisindayim.

Tekrar database e kayit yaparkende beforeSave function ni kullanman gerekiyor




public function afterFind(){

    $this->isk_orn= Yii::app()->numberFormatter->format('#',$this->isk_orn); 

}