2011-08-15 3 views
0

Doctrine 객체의 Doctrine 기본 형식을 확장 한 사용자 지정 Form이 있습니다.Symfony : Doctrine 양식에 대해 sfWidgetFormInputCheckbox() "on"이 true입니까?

나는 유형 : 부울 인 데이터베이스 필드가 있습니다. 내 양식의 경우 sfWidgetFormInputCheckbox() 위젯으로 표시했습니다. 양식을 제출할 때 체크 박스의 값은 on으로 반환되고 선택되어 있지 않으면 값이 전달되지 않습니다. 어느 쪽이든, 내 $form->save() 할 때 부울 필드 영향을받지 않습니다. Symfony/Doctrine은 true 또는 false을보고 싶어합니다. on 또는 전혀 가치가 없습니다.

$values['my_field'] = isset($values['my_field']) ? true : false; 

이이 처리하는 적절한 방법인가 :

내 솔루션은 값이 전혀 전달 그렇다면, 그 필드가 다른 falsetrue 경우 바로 보는 것입니다? 나는 Symfony/Doctrine이 이미 체크 박스를 다루는 방법을 이해할 것이라고 생각한다. 체크 박스의 값이 on으로 되돌아 오면 데이터베이스의 해당 값을 true으로 설정하고 존재하지 않으면 그 값은 false입니다.

분명히 내 접근 방식이 작동하지만 ... 올바른 접근 방식은 무엇입니까?

+0

'my_field'가 포함 된 양식을 확장하지 않는 이유는 무엇입니까? – scube

+0

나는 그랬다. 양식을 제출할 때 값은 "ON"입니다. "참"또는 "거짓"이 아닙니다. –

답변

2

sfValidatorBoolean은 true 또는 false를 반환합니다. 폼을 바인딩 한 후 true 또는 false가 아닌 경우이 유효성 검사기를 사용하지 않습니다.

+0

아, 재미 있습니다 ... 나는 이것을 시도해야 할 것입니다. 확인란이 이미 true 또는 false 일 수 있기 때문에이 Validator를 추가해야한다는 것을 알지 못했습니다. 나는 그것이 실제로 체크 박스의 전달 된 값을 변경한다는 것을 몰랐다. 무리 감사! –

관련 문제