0

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

我正在对模型进行简单的验证检查。没有什么花哨。

$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,甚至强制它为整数。我没有想法,如果有人能冒险猜测发生了什么,我将不胜感激。非常感谢您的帮助。

4

1 回答 1

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

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

于 2012-10-09T17:48:13.023 回答