Symfony1 如何在symfony 1.4中将swfWidgetformChoice多个选项序列化为数据库中的单个字段

Symfony1 如何在symfony 1.4中将swfWidgetformChoice多个选项序列化为数据库中的单个字段,symfony1,doctrine,Symfony1,Doctrine,我在一个项目中使用symfony 1.4,我需要存储多个 单个字段中的选项 我正在使用sfWidgetFormChoice设置loooks,如下所示: $status = Doctrine::getTable('Profile')->getStatuses(); $this->widgetSchema['status'] = new sfWidgetFormChoice(array( 'expanded'=>true, 'choi

我在一个项目中使用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);
    }
我是不是遗漏了什么?我得到以下错误:

注意:未定义的属性:Profile::$status在C:…/..//
这对我来说毫无意义

原则具有数组类型,它将自动为您序列化/反序列化数组。只需在schema.yml文件中将状态类型指定为Array。

原则具有数组类型,它将自动为您序列化/反序列化数组。只需在schema.yml文件中将status的类型指定为Array

public function  getStatus() {
    return unserialize($this->_get('status'));
}
但是,您可以使用@greg0ire提到的解决方案


但是,,您可以使用@greg0ire提到的解决方案

谢谢我现在只看到了您的答案,并设法使用@Darmen建议的相同解决方案来解决我的问题,但是我将尝试此选项,因为它似乎更正确谢谢我现在只看到了您的答案,并设法使用@Darmen建议的相同解决方案来解决我的问题将尝试此选项,因为它似乎更正确