0

我的 CakePHP (1.2.5.) 没有验证我的表单是否正确。

 $this->UserData->save($this->data);

总是给我一个真正的价值。我找不到问题。UserData.nichname 的标签有效。

这就是视图:

<?php
echo $form->create('UserData');
echo $form->error('UserData.nick_name');
echo $form->input('UserData.nick_name', array('id' => 'UserDatanick_name', 'rule' => 'alphaNumeric', 'label' =>'Nickname:', 'error' =>'false'));
echo $form->end( array( 'label' => ' Save ') );
?>

这是我的控制器:

class UserDatasController extends AppController {
  var $name = 'UserDatas';
  function add(){
     if (!empty ($this->data)){
         $this->UserData->create();
         if ($this->UserData->save($this->data)){
             $this->Session->setFlash('input is valid');
         } else {
             $this->Session->setFlash('input is not valid');
         }
     }
  }
}

的规则不在模型中,这就是我不发布它的原因。

验证还需要什么?

在此先感谢史蒂夫

4

3 回答 3

1

验证规则必须在模型中定义,而不是在视图中,另请参阅cakebook 中有关数据验证的章节。

于 2010-02-02T16:32:18.103 回答
0

我相信您只在模型中指定规则,但标签将保留在 $form->input() 函数中

于 2010-02-02T16:55:48.457 回答
0

^^ 还要检查你的文件被称为什么。您已将模型文件命名为 user_data.php 对吗?和你的控制器 user_data_controller.php?

由于您的 CamelCasing,请注意下划线。如果模型文件名错误,它不会抱怨,而是使用默认的魔法模型——这可能就是模型中的验证规则没有被选中的原因。

于 2010-02-03T10:47:04.753 回答