アップロード要素を含むフォームを作成しています。以下のコードでファイル要素を作成しました
$image = new Zend_Form_Element_File('image');
$image->setAttrib('title','Listing Image:')
->addDecorator('File')
->addValidator('Size', false, 204800)
->addValidator('Extension', false, 'jpg,png,gif');
$this->addElement($image);
私が知る限り、これはうまく機能します。ファイル要素をページに追加しようとします。「警告: ファイル デコレータが見つかりません... ファイル要素をレンダリングできません...」というエラーが表示されます。
ご覧のとおり、要素のデコレータをファイル デコレータに設定したので、なぜこのエラーが発生するのかわかりません。
viewHelper と PrepareElements を除くすべてのデフォルト デコレータを削除し、viewHelper としてビュー パーシャルを使用して出力を表示していることは注目に値します。これが必要な場合に備えて、以下にも含めました。
<form method="<?php echo $this->element->getMethod(); ?>" action="<?php echo $this->element->getAction(); ?>">
<div class="boxmiddle-Holder">
<div class="boxmiddle-content">
<table border="0" cellspacing="2" cellpadding="3" class="dataTable">
<?php foreach($this->element->getElements() as $element): ?>
<!-- if not a button then display label -->
<tr>
<td><label for="<?php echo $element->getName(); ?>"><?php echo $element->getAttrib('title'); ?></label></td>
<td class="normal"><?php echo $element; ?></td>
<?php if($element->getMessages()) {
foreach($element->getMessages() as $message) { ?>
<td> <?php echo "<p class='elementError'>".$message."</p>"; ?></td>
<?php }
}
?>
</tr>
<?php endforeach; ?>
</table>
</div>
</div>
何か案は?