2011-02-17 57 views
1

我使用的symfony 1.4的項目,我需要存儲在單場多 選項。如何序列swfWidgetformChoice在數據庫中的多個選項,以單場symfony的1.4

我使用sfWidgetFormChoice設置loooks這樣的:

$status = Doctrine::getTable('Profile')->getStatuses(); 
    $this->widgetSchema['status'] = new sfWidgetFormChoice(array(
     'expanded'=>true, 
     'choices'=>$status, 
     'multiple'=>true 
     )); 
    $this->validatorSchema['status'] = new sfValidatorChoice( 
      array('choices'=>array_keys($status), 
      'multiple'=>true, 'required'=>false 
    )); 

在我的模型我使用以下方法來連載多種選擇到 單個字段。

public function setStatus($data) { 
    $data = serialize($data); 

    $this->_set('status', $data); 

} 

> 這就像一個魅力和數據保存爲:?

a:2:{i:0;s:7:"relaxed";i:1;s:8:"Inactive";} 

但是我有我使用的難度在我的模型下面的檢索序列化的字符串作爲 數組:

public function getStatus() { 
    return unserialize($this->status); 
    } 

我失去了一些東西在這裏?我得到以下錯誤:

公告:未定義的屬性:個人資料::在C $狀態:.../..// 這沒有道理給我..

回答

5

學說的「陣「類型,它會自動序列化/反序列化數組你。只需在schema.yml文件中將狀態類型指定爲「Array」即可。

+0

感謝提到一個解決方案,我只看到你的答案現在manged使用相同的解決方案@Darmen建議,但是我會嘗試這個選項,以解決我的問題它似乎更加正確 – wikus 2011-02-20 23:14:23

1
public function getStatus() { 
    return unserialize($this->_get('status')); 
} 

但是,您可以使用@ greg0ire

相關問題