Validation Cakephp:如何验证数组

Validation Cakephp:如何验证数组,validation,cakephp,Validation,Cakephp,当用户上传他们的缩略图时,我需要验证用户缩略图的大小和类型。但我不知道如何验证数组数据。所以请帮帮我 p/s:我使用CakePHP2.x 我的数据: Array ( [User] => Array ( [id] => 45 [username] => pa7264 [password] => admin [new_password] =>

当用户上传他们的缩略图时,我需要验证用户缩略图的大小和类型。但我不知道如何验证数组数据。所以请帮帮我

p/s:我使用CakePHP2.x

我的数据:

Array
(
    [User] => Array

        (
            [id] => 45
            [username] => pa7264
            [password] => admin
            [new_password] => 
            [thumbnail] => Array
                (
                    [name] => demo.jpg
                    [type] => image/jpeg
                    [tmp_name] => D:\OpenServer\userdata\temp\phpD2FD.tmp
                    [error] => 0
                    [size] => 13582
                )

        )

)

您需要一个与getimagesize()函数成对的自定义验证

这是给你的速写稿:

//in User.php model
public $validate = array(
    'thumbnail' => array(
        'imageSize' => array(
            'rule' => array('check_image_size'),
            'message' => 'Thumbnail size is too big!'
        )
    )
);

// this is custom validaion function
public function check_image_size($data)
{
    $imagesize = getimagesize($data['thumbnail']['tmp_name']);
    if (($imagesize[0] > 600) || ($imagesize[1] > 400)){

        //here we taking request data to erase image to avoid problems in view
        $request = Router::getRequest();
        unset($request->data['User']['thumbnail']);
        return false; //validaion failed
    }
    return true; //validaion passed
}

这里,$imagesize[0]是图像的宽度,$imagesize[1]是图像的高度感谢克里夫克丘普,我非常爱你