sfWidgetFormSelect bir dize ya da seçilen öğenin bir int sağlar?

0 Cevap php

Ben bir can sıkıcı sorun yaşıyorum. Ben bir form alanları değişti ne bulmak için çalışırken, ve sonra bir tablo içine yerleştirin ediyorum. Aşağıdaki gösterilen doUpdateObjectas in var_dump başardı

public function doUpdateObject($values) 
{ 
    parent::doUpdateObject($values);
    var_dump($this->getObject()->getModified(false));
    var_dump($this->getObject()->getModified(true));
 } 

Ve $ gibi görünüyor bu-> getObject () -> getModified doğru veya yanlış ayarlanarak öncesi ve sonrası değerlerinde de beni vererek çalışmak gibi görünüyor.

Ben şu anda karşı karşıya yaşıyorum sorun bazı nasıl, sfWidgetFormSelect bir dize olarak benim alanlarından birini tasarrufu gibi görünüyor olmasıdır. kaydetmeden önce, bu aynı alanda bir int oldu. (Ben önce ve sonra iki var_dump tarafından bu fikrim var).

Burada hem var dökümleri üzerinde sonuç ne gösterdi:

array(1) {["annoying_field"]=> int(3)} array(1) {["annoying_field"]=>string(1)"3"}

Bu öğreti, bu bir modifikasyonudur ve böylece yanlış pozitif verir düşünmek neden gibi görünüyor.

Benim temel formda, ben

under $this->getWidgets()
'annoying_field'    => new sfWidgetFormInputText(),

under $this->setValidators
'annoying_field'    => new sfValidatorInteger(array('required' => false)),

ve son olarak benim yapılandırılmış Form.class.php ben gibi dosyayı yeniden var:

$this->widgetSchema['annoying_field'] = new sfWidgetFormSelect(array('choices' => $statuses));

durumları {"" a "," b "," c "," d "} gibi değerleri içeren bir dizidir

ve ben sadece statü endeksi veritabanında saklanır istiyorum.

Ve de nasıl bir veritabanı tabloya değişiklikleri ekleyebilirsiniz? benim Günlüğü tablosunu diyelim?

Bunun neden olarak herhangi bir fikir ve tavsiye takdir, ben onu anlamaya çalışıyorum ve boşuna çeşitli anahtar kelimeler için tarama google oldum.

Teşekkürler!

Edit:

ok so I created another field, integer in my schema just for testing. I created an entry, saved it, and edited it.

bu kez aynı şey oldu!

0 Cevap