我正在为文章上传图片,在模型中,我为此图片设置了一些验证规则。
//View
$this->Form->input('Post.image');
//Model Post
public $validate = array(
'image' => array(
'extension' => array(
'rule' => array('extension', array('jpeg', 'jpg', 'png', 'gif', 'bmp')),
'message' => "L'extension de l'image envoyée n'est pas valide"
),
'uploadError' => array(
'rule' => array('uploadError', true),
'message' => "Une erreur est survenue lors de l'upload de l'image"
),
'mimeType' => array(
'rule' => array('mimeType', array('image/png', 'image/jpeg', 'image/jpeg', 'image/jpeg', 'image/gif', 'image/bmp')),
'message' => "Type de l'image invalide"
),
'fileSize' => array(
'rule' => array('fileSize', '<=', '2MB'),
'message' => "La taille de l'image ne doit pas dépasser 2MB"
)
)
);
图片不是required
,但在html视图中生成的输入包含required
属性,我通过在每个规则上添加allowEmpty => true
来解决此问题。但是,验证仍未通过!
我该如何解决这个问题?
谢谢
答案 0 :(得分:0)
您是否应该包含'required' => false
而不是使用'allowEmpty' => true
?根据我对CookBook regarding allowEmpty的理解,它通过运行!empty($value) || is_numeric($value)
进行检查,而提交File输入将导致生成数组。因此,$value
仍然是正确的,并且根据当前的验证规则仍然是必需的。
希望至少能以任何方式为您提供帮助。