Cakephp:表单验证

时间:2010-12-25 11:02:39

标签: cakephp

我正在尝试为我的模型创建验证器:

但是从http://book.cakephp.org/获取示例:

  var $validate = array(
  'country' => array(
    'rule' => 'notEmpty'
 )
);

给出以下错误:preg_match()[function.preg-match]:分隔符不能是字母数字或反斜杠[CORE / cake / libs / model / app_model.php,第166行]

通过Google搜索此错误,我找到了一个推荐使用的邮件列表条目:(http://cakephp.1045679.n5.nabble.com/validation-notEmpty-td1320629.html

 'country' => array(
    'rule' => VALID_NOT_EMPTY,
    'message' => 'This field cannot be left blank.'
    )

哪个不起作用。所以我试过了:

'country' => array(
    'rule' => 'VALID_NOT_EMPTY',
    'message' => 'This field cannot be left blank.'
    )

将该字段标记为必填字段,但并未阻止我将其留空。

我的问题是:如何正确地做到这一点?我正在使用CakePHP 1.3.6

3 个答案:

答案 0 :(得分:1)

很可能你需要放required键;像这样的东西:

'country' => array(
    'rule' => 'notEmpty',
     required => true,
    'message' => 'This field cannot be left blank.'
    )

希望这有帮助。

答案 1 :(得分:0)

为什么不使用命令行烘焙模型(cmd:cake bake)?如果烘焙模型,可以在那里指定验证规则。 它快速而简单......您可以看到验证的工作原理。

它给了我很多帮助......

这是一个示例代码。

'username' => array(
        'notempty' => array(
            'rule' => array('notempty'),
            'message' => 'Username required',
            'allowEmpty' => false,
            'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),

您必须使用数组进行规则定义...

答案 2 :(得分:0)

在您的视图文件中添加'class'='required' 例如:

<?php echo $this->Form->input('new_email',array('class'=>'email required yellow', 'div'=>false, 'label'=>false));?>