0

ユーザーが画像をアップロードできるフォームがあり、次のようにページに印刷しています。

<?php echo $this->Form->label('file', 'Image file', array('class' => 'col-lg-1 control-label')); ?>

次に、モデルで次のように検証を設定しています。

public $validate = array(
    'file' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'You must select an image to upload'
        ),
        'extension' => array(
            'rule' => array('extension', array('png')),
            'message' => 'Images must be in PNG format'
        ),
        'size' => array(
            'rule' => array('fileSize', '<', '1MB'),
            'message' => 'Images must be no larger than 1MB'
        ),
        'goodUpload' => array(
            'rule' => 'uploadError',
            'message' => 'Something went wrong with the upload, please try again'
        )
    )
);

ただし、アップロードする画像を選択すると、「アップロードする画像を選択する必要があります」というフォームエラーが常に表示されるため、Cake はフォームフィールドを検証ルールに関連付けていないようです。フォームに があることを確認しましたenctype="multipart/form-data"

fileこれは、データベース フィールドではないために発生していますか? Cakeで検証を実行するにはどうすればよいfileですか?

編集: 要求に応じて、フォーム全体を以下に示します: http://pastebin.com/SbSbtDP9

4

2 に答える 2

0

それを理解することができました。ファイルフィールドのnotEmpty検証が機能しないことが判明しました。常にそこには何もないと考えられているため、常にその検証メッセージがスローされます。

私自身の検証方法を書くことでそれを回避しました。

于 2013-10-04T08:11:06.317 に答える