CakePHP验证不在数据库中的字段

时间:2013-08-07 13:45:10

标签: php validation cakephp

我有一个表单,其值不在我的数据库中。我不想对它们进行验证,所以我使用字段名称制作了一些验证规则。不知何故,验证规则未被使用。

我已经尝试设置不同的规则。文件名是正确的,因为$ hasMany连接有效。

我希望你能帮忙!

形式:

<?php
  echo $this->Form->create('Map');
    echo $this->Form->input('min_x');
    echo $this->Form->input('max_x');
    echo $this->Form->input('min_y');
    echo $this->Form->input('max_y');
  echo $this->Form->end('Submit');
?>

验证规则:

public $validate = array(
  'min_x' => array(
    'rule' => 'Numeric',
    'message' => 'Please enter a numeric value.'
  ),
  'max_x' => array(
    'rule' => 'Numeric',
    'message' => 'Please enter a numeric value.'
  ),
  'min_y' => array(
    'rule' => 'Numeric',
    'message' => 'Please enter a numeric value.'
  ),
  'max_y' => array(
    'rule' => 'Numeric',
    'message' => 'Please enter a numeric value.'
  ),
);

2 个答案:

答案 0 :(得分:0)

验证规则区分大小写,因此:

'rule' => 'Numeric',

应改为

'rule' => 'numeric',
每个实例

在最后一个字段的数组中还有一个额外的逗号。


public $validate = array(
  'min_x' => array(
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Please enter a numeric value.'
    )
  ),
  'max_x' => array(
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Please enter a numeric value.'
    )
  ),
  'min_y' => array(
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Please enter a numeric value.'
    )
  ),
  'max_y' => array(
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Please enter a numeric value.'
    )
  )
);

答案 1 :(得分:0)

在所有消息的末尾必须有','。

'max_x' => array(
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Please enter a numeric value.',
    )
  ),