0

ファイルをアップロードするためのスタンドアロンの zend フォームを作成し、ファイル要素を必須フィールドとして設定しました。しかし、ファイル要素はエラーメッセージを出力していません。

ファイル要素のデコレータを次のように設定します。

// 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

私は何を間違っていますか?よろしくお願いいたします。

4

2 に答える 2

0

enctype="element->getEnctype();?> を出力する必要があり、すべてが機能しました。

于 2012-08-13T14:18:08.833 に答える
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 が、ファイル エレメント デコレータの設定を妨害している可能性があります。addDecorator() または addDecorators() はそれを防ぐ必要があります。

また、他の潜在的な問題を排除するために、テスト用のデフォルトのデコレーターを使用することをお勧めします。

明らかなものは何も見えません。本当に違うのは、File 要素が isValid() を Zend_File_Transfer にプロキシすることだけです。そこに問題がある可能性があると思いますが、問題がある場合は重大なエラー メッセージが表示されると予想されます。

于 2012-08-11T13:00:00.890 に答える