3

我有用于上传图像的输入类型文件。这不是必填字段。所以我将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;
}

或用于验证图像类型的任何其他规则。

4

1 回答 1

1

在您的示例中,allowEmpty甚至都没有关系 - 它使用自定义方法isImage()并返回 false。结束验证/失败。

如果您要使用自定义验证规则,请使用它。在函数中尝试这样的事情:

if(empty($field)) return true;
于 2013-03-22T14:26:40.717 回答