0

プロフィール写真用のファイル アップロードを設定したフォームがあり、次のようにファイル アップロードを検証しています。

'picture' => array(
    'kosher' => array(
        'rule' => 'validateImage',
        'message' => 'Only images are allowed to be uploaded'
    ),
    'size' => array(
        'rule' => array('fileSize', '<=', '2MB'),
        'message' => 'Picture must be less than 2 MB'
    )
)

検証は実行され、機能しますが、間違ったデータを送信してもフォームに検証エラーは表示されません。私は次のようにフォーム全体を構築しています:

<?php echo $this->Form->create('Profile', array('type' => 'file')); ?>
<?php echo $this->Form->hidden('id'); ?>
<?php echo $this->Form->label('Profile.picture', 'Profile picture'); ?>
<?php echo $this->Form->file('picture'); ?>
<?php echo $this->Form->input('firstname'); ?>
<?php echo $this->Form->input('lastname'); ?>
<?php echo $this->Form->input('email', array('between' => 'This is the email other users will use to contact you')); ?>
<?php echo $this->Form->input('Skill', array('type' => 'text', 'value' => $skills, 'label' => 'Your skills (seperate each skill by space)')); ?>
<?php echo $this->Form->input('course'); ?>
<?php echo $this->Form->input('bio'); ?>
<?php echo $this->Form->end('Save changes'); ?>

ファイルのアップロードではなく、他のフィールドのエラー メッセージが正しく表示されます。ファイル入力の周りに検証エラーを表示するにはどうすればよいですか?

4

1 に答える 1

1

$this->Form->file('picture');ファイルアップロードフィールドのみを生成するものを使用しました。

$this->Form->error('picture');その下に検証エラー メッセージを表示する を追加するか$this->Form->input('picture', array('type' => 'file'));、ファイル アップロード入力も生成するために使用します。

Form::input()必要な入力フィールド、ラベル タグを生成し、検証エラー メッセージがあればそれを表示するラッパー メソッドです。マニュアルをお読みください。

于 2013-03-21T14:35:25.410 に答える