2017-05-22 4 views
0

Ich bin neu in CakePHP und habe ein normales Formular erstellt, um den Vornamen einzugeben. Mein Tabellenname ist "Register. Ich habe einen Controller RegistersController (RegistersController.php) und ein Modell mit dem Namen Register (register.php) mit dem Namen erstellt. Jedes Mal, wenn ich nach der Eingabe Vornamen einreichen, zeigt es immer noch Fehler (Vorname ist muss) die es nur wenn ich es einreichen sollte, ohne etwas einzugeben. Als nächstes habe ich Validierung für mindestens 6 Zeichen hinzugefügt. Diese Validierung funktioniert auch nicht. Ich meine, CakePHP ist nicht diese Regel validieren. Könnte jemand bitte Sag mir, wo ich etwas falsch gemacht habe?CakePHP Modellvalidierung funktioniert nicht richtig

Modell: -

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

}

Controller: -

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

Meine Ansicht ist, wie folgt: -

<?php 

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

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

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

?> 

Antwort

2

Sie vermissen diese Zeile

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

Stellen Sie es vor dem Validierungsanruf, d. H. $this->Register->validates()

+0

Es funktionierte. Vielen Dank –