2012-08-10 99 views
0

我創建了一個獨立的zend表單來上傳文件,並將文件元素設置爲必填字段。但是該文件元素不打印出任何錯誤消息。ZF文件元素不打印任何錯誤信息

我設置像這樣的文件元素的裝飾:

// The file element requires the File decorator instead of the 
// ViewHelper decorator 
$file->setDecorators(array(
    'File', 
    'Errors', 
)); 

我粘貼在這裏的代碼:http://pastebin.com/0D59pxiR

我粘貼在這裏的模板:http://pastebin.com/SRYh71JN

我在做什麼錯?我事先感謝您的幫助。

回答

0

所需打印出ENCTYPE =「元素 - > getEnctype();?>和一切工作

0

您可能需要拆分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。我想那裏可能有一個問題,但如果有的話,我會期望一個重大的錯誤信息。

+0

它沒有工作另外,已經打印出所有的錯誤,除了文件元素的錯誤形式。 – ryy 2012-08-12 13:06:32