2010-02-02 51 views
0

我的CakePHP(1.2.5。)不验证我的表单正确。蛋糕PHP - 表单验证不起作用

$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'); 
     } 
    } 
    } 
} 

的规则都没有在模型中,这就是reaseon我不张贴。

验证还需要什么?

在此先感谢 史蒂夫

回答

0

也^^检查你的文件被调用。 你已经命名你的模型文件user_data.php对不对?和你的控制器user_data_controller.php?

请注意由于您的CamelCasing造成的下划线。如果你得到的模型文件名错误,它不会抱怨,而是使用默认的魔术模型 - 这可能是为什么你的模型中的验证规则没有得到提取。

+0

非常感谢, 这是问题!!!!!!! – Schtief 2010-02-03 12:24:22

0

谢谢!

我已经用appmodel试过了。 现在标签也不起作用。

这里是我的appmodel:

class UserData extends AppModel { 
    var $name = 'UserData'; 
    var $validate = array('nick_name' => array(
       'rule' => 'alphaNumeric', 
       'label' =>'Nickname:', 
       'error' =>'false') 
     ); 
} 
+0

MVC分离:所有与数据保存/抓取有关的事物都在模型中,与该数据的呈现有关的所有事情都在View中。验证规则与数据保存有关,并进入模型,表单字段的标签,这些类型与视图相关。再次慢慢阅读食谱,并注意哪些字段放在哪里。 http://book.cakephp.org/view/127/One-Rule-Per-Field http://book.cakephp.org/view/189/Automagic-Form-Elements :) – deceze 2010-02-02 23:08:44

+0

请不要回答您的问题自己的问题与其他用户的回应或其他用户。编辑您的原始问题并评论他们的答案。 – Bobby 2010-02-03 10:52:58

0

我相信你只指定模型中的规则,但标签将保持在$形式 - > input()函数