2017-05-22 19 views
0

我是CakePHP的新手,並且已經創建了一個提交名字的正常表單。 我的表名是「寄存器,我創建了一個名爲RegistersController(RegistersController.php)控制器和一個名爲註冊(Register.php)模型。每次我進入第一個名字提交後,它仍然會顯示錯誤(名字是必須的),它應該只有當我提交它沒有輸入任何東西,接下來我添加驗證至少有6個字符,驗證也不起作用,我的意思是,cakephp沒有驗證該規則。告訴我我在哪裏做錯了什麼?CakePHP模型驗證無法正常工作

型號: -

class Register extends AppModel { 
//put your code here 

//public $useTable = "registers"; 

public $validate = array(
    'first'=>array(     
     'minLength' => array(
      'rule' => array('minlength','6'), 
      'field' => 'first', 
      'message' => 'Minimum 6 characters required' 
     ), 
     'required' => array(
      'rule'=>array('notEmpty'), 
      'required' => true, 
      'message' => array('First name is must') 
     )   
    ) 
); 

}

控制器: -

class RegistersController extends AppController { 

public $uses = array("Register"); 
//put your code here 
public function index() { 
    if($this->request->is('post')){ 
     //echo "Data";   
     if($this->Register->validates()){ 
      //$this->Register->create(); 
      //echo "Data validated"; 
      print_r($this->Register->validationErrors);     
     }else{ 
      //echo "Data not validated"; 
      print_r($this->Register->validationErrors); 
     } 
    } 
} 

我的看法如下: -

<?php 

echo $this->Form->create('Register'); 

echo $this->Form->input('first'); 

echo $this->Form->end("Submit"); 

?> 

回答

2

你缺少這一行

$this->Register->set($this->request->data);

把它放在驗證呼叫之前,即 $this->Register->validates()

+0

它的工作。謝謝 –