我设置了一个表单,其中包含用于个人资料图片的文件上传,我正在验证文件上传,如下所示:
'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'); ?>
其他字段错误消息正确显示,而不是文件上传。如何在文件输入周围显示验证错误?
答案 0 :(得分:1)
您使用的$this->Form->file('picture');
只会生成文件上传字段。
在其下方添加$this->Form->error('picture');
将显示验证错误消息,或使用$this->Form->input('picture', array('type' => 'file'));
生成文件上传输入。
Form::input()
是一个包装器方法,它生成所需的输入字段,标签标签并显示验证错误消息(如果有)。请阅读手册。