CakePHP中的模型验证

CakePHP中的模型验证,php,validation,cakephp,model,Php,Validation,Cakephp,Model,我对验证规则有一些问题 更新: 警告(512):找不到lastname的验证处理程序maxLength[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行] 警告(512):找不到firstname[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]的验证处理程序maxLength 警告(512):找不到电话[CORE\Cake\Model\Validator\CakeValid

我对验证规则有一些问题

更新:

警告(512):找不到lastname的验证处理程序maxLength[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]

警告(512):找不到firstname[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]的验证处理程序maxLength

警告(512):找不到电话[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]的验证处理程序maxLength

警告(512):找不到地址[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]的验证处理程序maxLength

警告(512):找不到zipcode[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]的验证处理程序maxLength

警告(512):找不到city的验证处理程序maxLength[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]

警告(512):找不到用于出生的验证处理程序maxLength[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]

有时,我也会犯这样的错误:(如果可以的话)

CakePHP的版本:2.4.3
(很抱歉我英语不好,我是法国人^^)

检查maxLength上的语法。它应该是骆驼壳的。因为您使用了所有小写字母,所以无法找到正确的方法

你写道:

'rule' => array('maxlength', 25),
应该是

'rule' => array('maxLength', 25),
见:

此外,您正在使用如下自定义名称编写规则:

'address' => array(
    'maxLength' => array(
        'rule' => array('maxLength', 255),
        'message' => "Your email address can't contain more than %d characters.",
        'on' => 'update',
    ),
),
尝试将其更改为:

'address' => array(
    'rule' => array('maxLength', 255),
    'message' => "Your email address can't contain more than %d characters.",
    'on' => 'update',
),

此规则确保数据保持在最大长度要求内

public$validate=array( '登录'=>数组( '规则'=>数组('maxLength',15), '消息'=>'用户名的长度不得超过15个字符。' ) );

更多信息:-


您好,谢谢您的回答。我已经尝试使用“maxLength”,但对于所有这些字段“警告(512):找不到lastname的验证处理程序maxLength[CORE\Cake\Model\Validator\CakeValidationRule.php,第281行]”仍然存在相同的错误。请更新OP中的代码,以显示您所做的更改。此外,请确认已清除缓存,以确保正确调用新代码。请参阅我的更新。您可能需要删除自定义名称或将其更改为其他名称,如“total_length”。您好,我尝试了这两种解决方案,但所有领域的错误仍然相同:(问题解决了,所有规则都很好,是一个关联失败了:“验证”。这就是我出错的原因:“错误:调用未定义的方法验证::getDataSource()”感谢您的帮助,Chuck!这似乎只是已接受答案的选择性副本;这有什么补充?
'address' => array(
    'maxLength' => array(
        'rule' => array('maxLength', 255),
        'message' => "Your email address can't contain more than %d characters.",
        'on' => 'update',
    ),
),
'address' => array(
    'rule' => array('maxLength', 255),
    'message' => "Your email address can't contain more than %d characters.",
    'on' => 'update',
),