젠드 양식에 대한 사용자 정의 뷰 스크립트를 만들었습니다. 이 양식에는 파일 요소가 있습니다. echo $this->element->elementname->renderViewHelper()
코드를 실행하면 파일 요소를 제외한 모든 요소에서 정상적으로 작동합니다. 내 사용자 지정 양식 viewscript에 Uncaught exception 'Zend_Form_Element_Exception' with message 'Decorator by name ViewHelper does not exist'
젠드 (Zend) 사용자 정의 뷰 스크립트 (파일 요소 렌더링 없음)
<?php if($this->element->avatarimage->hasErrors()):?>
<div class="control-group error">
<?php else: ?>
<div class="control-group">
<?php endif;?>
<label for="avatarimage" class="control-label">Avatar Image</label>
<div class="controls">
<?php echo $this->element->avatarimage->renderViewHelper();?>
<?php if($this->element->avatarimage->hasErrors()):
$messages = $this->element->avatarimage->getMessages();
$messages = array_values($messages);
$message = $messages[0];
echo '<span class="help-inline">'.$message.'</span>';
endif;
?>
</div>
</div>
가 어떻게 내 파일 요소를 통합 할 수 있습니다 : 내 사용자 정의 viewscript 내에서 내 파일 요소에 다음 코드를 실행하면, 다음과 같은 오류가?
이 세미는 내 문제를 해결합니다. 이 작업을 수행하면 avatarimage 요소 (dt 및 dd)에 첨부 된 추가 html 콘텐츠가 생성됩니다. 다른 모든 요소에서 renderViewHelper를 호출하면 입력 html 만 반환됩니다. – jkushner
폼 클래스의 요소에서 데코레이터를 제거해야합니다. 예를 들어, $ element-> removeDecorator ('DtDdWrapper'); – dimirc
다른 데코레이터를 제거 할 수도 있습니다 : $ element-> removeDecorator ('label') $ element-> removeDecorator ('htmlTag'); 데코레이터에 대한 자세한 내용은 http://framework.zend.com/manual/en/zend.form.standardDecorators.html – dimirc