显示特定输入字段的验证错误

时间:2013-03-20 23:35:08

标签: php validation cakephp file-upload

我设置了一个表单,其中包含用于个人资料图片的文件上传,我正在验证文件上传,如下所示:

'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'); ?>

其他字段错误消息正确显示,而不是文件上传。如何在文件输入周围显示验证错误?

1 个答案:

答案 0 :(得分:1)

您使用的$this->Form->file('picture');只会生成文件上传字段。

在其下方添加$this->Form->error('picture');将显示验证错误消息,或使用$this->Form->input('picture', array('type' => 'file'));生成文件上传输入。

Form::input()是一个包装器方法,它生成所需的输入字段,标签标签并显示验证错误消息(如果有)。请阅读手册。