0
我正在創建一個帶有上傳元素的表單。我創建了以下代碼的文件元素Zend_Form_Element_File(沒有修飾器發現錯誤)
$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>
任何想法?
我檢查了所有的代碼,我似乎無法找到刪除裝飾器的任何地方。我能想到的唯一的事情是,我的視圖部分用於渲染上面包含的表單,可能不會輸出裝飾器,即使它具有一個集合? – jjmu15
在你的循環中,在File元素上嘗試'var_dump($ element-> getDecorators());'看看結果是什麼。我很好奇,看看它註冊了什麼。在創建元素時,您可能需要將' - > addDecorator('File')'改爲' - > setDecorator(array('File'))',以便刪除所有現有元素並替換爲文件修飾器。 – drew010
我對它排序。在窗體的底部,我設置了表單元素裝飾器。當使用它時,它似乎覆蓋了我爲各個元素設置的裝飾器。我已經做了什麼來解決它是刪除表單底部的一般設置,並指定它需要的裝飾器的每個元素。 – jjmu15