2011-08-30 4 views
2

나는 Zend_Form_Element_Select 개체와 약 3,000 개의 선택 옵션을 가지고 있습니다. 고객이 최적화 가능성에 대해 더 자세히 살펴달라고 요청했을 때 나는 디버그 추적을 수행했으며 에 3k가 넘고에 약간 적음을 알았습니다. $elem->setDisableTranslator(true)을 설정할 수있는 옵션을 발견했습니다.이 번역은 필요하지 않았습니다. 그러나 이제 문제는 오류 메시지가 더 이상 번역되지 않는다는 것입니다.Zend_Form_Element에 대한 변환기를 사용하지 않지만 유효성 검사기는 사용하지 않습니다.

값 및 옵션을 변환하지 않고 유효성 검사기 메시지를 변환하는 방법이 있다면 알고 싶습니다.

foreach($operators->getValidators() as $val){ 
     $val->setDisableTranslator(false); 
    } 

하지만 아무 소용이 :

나는이 시도.

답변

2

요소 클래스 내에 옵션이 표시되지 않으므로 간단한 해결책으로 Zend_Form_Element_Select 클래스를 확장 할 수 있습니다. 또한

class My_Form_Element_Select extends Zend_Form_Element_Select { 

    protected function _translateOption($option,$value) { 
     // or add more logic here 
     return false; 
    } 
} 

을 다음과 같이 그럼 당신은 당신이 즉,이 시나리오에 대한 몇 가지 추가 논리와 옵션을 설정 옵션을 온/오프 번역을 켤 수 있으며, _translateOptions 방법을 대체 할 수 있습니다.

이 호출을 모두 제거하려면 _translateOption()을 호출하는 getMultiOption() 또는 getMultiOptions()을 무시해야합니다.

+0

감사! 결국에는이 작업을 수행 할 필요가 없었지만 이것이 효과가있었습니다. –