2016-12-09 30 views
0

我使用CakePHP 2.5.4如何創建一個驗證規則,以防止負數?

我想驗證一個字段的輸入表,這樣負數不能進入。 我知道可以用JavaScript來完成,但對於學習的目的,我想實現一個驗證函數,然後應用它作爲模型的規則。 例如,我有一個域名爲價格表命名的物種。在模型內我有:

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' 

          ) 

        ) 

         ); 

任何想法如何在該模型中編寫這樣的規則的功能?

非常感謝你!

回答

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

+0

非常感謝你,比爾!它完美的作品! – Lucas

0

你可以使用Core驗證方法,包括自然數:

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.' 
     ) 
    ) 
);