我有上传图片的输入类型文件。这不是必填字段。所以我将 allowEmpty 选项设置为true。但我的模型没有采取这种选择。 验证码:
public $validate = array(
'image' => array(
'isImage' => array(
'rule' => 'isImage',
'message' => 'Please upload images only',
'allowEmpty' => true,
//'required' => true,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
public function isImage($field = null) {
$file_info = $field['image_path'];
$image_types = array("image/jpeg", "image/gif", "image/jpg", "image/png");
$result = false;
if (in_array($file_info['type'], $image_types)) {
$result = true;
}
return $result;
}
或验证图像类型的任何其他规则。
答案 0 :(得分:1)
在您的示例中,allowEmpty
甚至不重要 - 它使用自定义方法isImage()
并返回false。结束验证/失败。
如果您要使用自定义验证规则,请使用它。在函数中尝试这样的事情:
if(empty($field)) return true;