2011-02-17 8 views
1

프로젝트에서 symfony 1.4를 사용하고 있으며 하나의 필드에 여러 개의 옵션을 저장해야합니다. 나는 sfWidgetFormChoice이 같은 loooks를 설정 사용하고symfony 1.4의 데이터베이스에서 swfWidgetformChoice 여러 옵션을 단일 필드로 serialize하는 방법

:

$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

감사 greg0ire @ 언급 솔루션을 사용하고 @Darmen 그러나 나는 등이 옵션을 시도 할 것이다 제안과 같은 솔루션을 사용하여 내 문제를 해결하기 위해 manged했던 수 더 정확한 것 같다. – wikus

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

하지만 난 단지 지금 답변을보고

관련 문제