您可能需要拆分ispost和isValid方法:
if(isset($_POST['submit'])) {
if ($form->isValid($_POST)){
echo 'Thank you';
}
//if is post but not valid reload page and render the errors
echo $form->render($view);//render form with errors
echo $form->getMessages($view);//or just render the messages back to the view
} else {
echo $form->render($view);//if not post render form
}
這是我最好的猜測。
[編輯]
你試過
$file->addDecorator('File');
,而不是
$file->setDecorators(array(
'File',
'Errors',
));
表單級別setElementDecorators可能在某種程度上與設置文件元素裝飾interferring。 addDecorator()或addDecorators()應該防止這種情況。
我也建議你嘗試使用默認的裝飾測試來排除任何其他潛在的問題。
我沒有看到任何明顯的。唯一不同的是,File元素代理將isValid()傳遞給Zend_File_Transfer。我想那裏可能有一個問題,但如果有的話,我會期望一個重大的錯誤信息。
它沒有工作另外,已經打印出所有的錯誤,除了文件元素的錯誤形式。 – ryy 2012-08-12 13:06:32