2013-02-04 1 views
2

데이터베이스 행을 업데이트하기위한 사용자 지정 양식이 있습니다. $form->loadDataFrom($data)을 사용하여 필드 값을 미리 채 웁니다. 여기서 $ data는 필드 값의 연관 배열입니다.Silverstripe DropdownField가 loadDataFrom()으로로드되지 않음

이 기능은 DropdownField를 제외한 모든 기능에 유용합니다. 아무것도 "선택됨"으로 설정되지 않습니다.

관련 코드 : 양식의 서브 클래스에

: 컨트롤러에서

$fields = FieldList::create( 
... 
DropdownField::create('subscribed')->setSource(array('1' => 'Yes', '0' => 'No'))->setAttribute('class', 'default') 
); 

는 :

$form->loadDataFrom($data); 

나는 결국 ($ 데이터가 올바른 형식의 연관 배열 인 것을 확인했다 다른 모든 필드는 적절한 값을가집니다).

드롭 다운 필드는 선택한 값을 설정하지 않습니다.

+0

데이터 $의 출력/덤프를 볼 유용 할 수 있습니다. 또한 필자는 수도 (예 : 구독)로 시작하지 않는 필드 이름에 개인적으로 문제가 있었지만 관련이 없습니다. – colymba

답변

2

당신은 소스 배열의 키에 대한 진실과 거짓 사용할 필요가 :

DropdownField::create('subscribed')->setSource(array(
    true => 'Yes', 
    false => 'No' 
))