Validation CakePHP验证错误

Validation CakePHP验证错误,validation,cakephp,Validation,Cakephp,我试图用CakePHP2.3.8验证输入。当输入通过验证时,工作正常。但是,当它不满足验证要求时,我会得到以下错误 Warning (2): vsprintf(): Too few arguments [CORE/Cake/basics.php, line 619] 这将显示在顶部。在应该显示消息的输入周围,它只是一个空白的红色轮廓,就像消息没有传递一样 这是我的确认 'sales_tax' => array( 'valid' => array(

我试图用CakePHP2.3.8验证输入。当输入通过验证时,工作正常。但是,当它不满足验证要求时,我会得到以下错误

Warning (2): vsprintf(): Too few arguments [CORE/Cake/basics.php, line 619]
这将显示在顶部。在应该显示消息的输入周围,它只是一个空白的红色轮廓,就像消息没有传递一样

这是我的确认

'sales_tax' => array(
        'valid' => array(
            'rule' => array('confirm_percentage'),
            'message' => 'Sales tax must be a percentage (Ex: 4.005%)'
        )
),
我也在没有“有效”数组的情况下尝试了此操作,错误仍然存在。以及功能

function confirm_percentage($value){
    if(preg_match('/^[0-9]/', $value['sales_tax'])){ //just checking if input starts with number for testing purposes
        return true; //no error
    }
}

最终,您的验证规则消息将被传递到
vsprintf()
(在
\uu d()
中),因此必须将其格式化为兼容

问题是您正在传递一个
%
,它是转换说明符identificator,因此
vsprintf()
希望您适当地传递其他参数

长话短说,用另一个
%
逃出
%

'message' => 'Sales tax must be a percentage (Ex: 4.005%%)'