如何创建验证规则以防止负数?

时间:2016-12-09 16:33:44

标签: validation cakephp-2.0 models rules

我正在使用Cakephp 2.5.4

我想验证表格中字段的输入,以便无法输入负数。 我知道用JavaScript可以做些什么,但出于学习目的,我想实现一个验证功能,然后将其作为规则应用于模型中。 例如,我有一个名为species的表,其中包含一个名为price的字段。在模型中,我有:

var $validate = array(

        'precio_kg' => array(

            'notEmpty' => array(

                    'rule' => 'notEmpty',

                    'message' => 'Este campo no puede ser vacío'

                       ),

            'checkPositivo' => array(

                    'rule' => array('checkPositivo'),

                    'message'=>'The value can not be negative'

                            )

                    )

                       );

任何想法如何在该模型中编写这样一条规则的函数?

非常感谢你!

2 个答案:

答案 0 :(得分:0)

您可以add your own validation methods来建模。

'rule' => array('checkPositive'), // in the validation array

public function checkPositive($check) {
    return bccomp($check['precio_kg'], 0);
}

如果你想允许零,你可以调整它。

bccomp docs

答案 1 :(得分:0)

您可以使用核心验证方法,包括自然数:

public $validate = array(
    'precio_kg' => array(
        'notEmpty' => array(
            'rule' => 'notEmpty',
            'message' => 'Este campo no puede estar vacío.'
        ),
        'checkPositivo' => array(
            'rule' => 'naturalNumber',
            'message' => 'Este número no puede ser negativo.'
        )
    )
);