CakePHP验证:: naturalNumber()不起作用

时间:2012-10-09 17:36:47

标签: php validation cakephp cakephp-2.1

早上好(至少在亚利桑那州)。

我正在对模型进行简单的验证检查。没什么好看的。

$this->loadModel('Something');
$data = array(
    'foo_id' => '1',
    'bar' => 'John'
); 
$this->Something->save($data);

----------------------------------------

class Something extends AppModel {
    public $validate = array(
        'foo_id' => array(
            'notEmpty' => array(
                'rule' => 'notEmpty',
                'message' => 'Foo id is missing',
                'required' => true
            ),
            'naturalNumber' => array(
                'rule' => 'naturalNumber',
                'message' => 'Foo id must be greater than 0',
                'required' => true
            )
        )
    );
}

这应该很简单,但Something.foo_id始终无法通过自然数验证。请注意,Something.id未定义,因此save()应运行INSERT。我已经确认该值大于0并且甚至强制它是一个整数。我没有想法,如果有人可能会猜测正在发生的事情,我会很感激。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

如果您查看文档(http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::naturalNumber)或升级指南(http://book.cakephp.org/2.0/en/appendices/2-2-migration-guide.html),您应该会注意到此规则已添加到2.2中

所以升级或手动将此规则添加到您的应用模型