php - How to assign validations for model and controller in cakephp? -
i developing 1 register form.but dont know how validations in cakephp register form in controller class.
model class:
user.php
<?php class user extends appmodel { var $name='user'; //var $usetable = false; var $validate= array( 'username'=>array( 'rule'=>'notempty', 'required'=>true, 'message'=>'enter name' ), 'email'=>array( 'email'=>array( 'rule'=>'email', 'message'=>'enter valid emial address' ), 'email'=>array( 'rule'=>'notempty', 'required'=>true, 'message'=>'enter email address' ) ), 'password'=>array( 'alphanumeric' => array( 'rule' => 'alphanumeric', 'required' => true, 'message' => 'alphabets , numbers only' ), 'password' => array( 'rule' => array('minlength', '8'), 'message' => 'minimum 8 characters long' ), ), 'firstname'=>array( 'rule'=>'notempty', 'required'=>true, 'message'=>'enter firstname' ), 'lastname'=>array( 'rule'=>'notempty', 'required'=>true, 'message'=>'enter lastname' ), );
**controller class:
usercontroller.php**
<?php class userscontroller extends appcontroller { var $name = 'users'; function send(){ if(!empty($this->data)){ $this->user->set($this->data); if($this->user->validates()){ if(!empty($this->data['user']['username'])) { $this->username->from = $this->data['user']['username'] ; } else{ $this->username->from = $this->data['user']['username'] . ' <' . $this->data['user']['username'] . '>'; $this->render('success'); } } else { $this->render('register'); } } } }
users.register view *register.ctp*
<h3>registration form<h3> <form action="../users/register" method="post" name="form"> username:<input type="text" name="username"> password:<input type="password" name="password"> email:<input type="text" name="email"> firstname:<input type="text" name="firstname"> lastname:<input type="text" name="lastname"> <input type="submit" value="register"> </form>
please me how validations in cakephp.
create action named register() , created view register.ctp. register aciton code looks that-
function register(){ if(!empty($this->data)){ $this->user->create(); if($this->user->save($this->data)){ $this->session->setflash("user saved!"); $this->redirect('/login'); } else{ $this->session->setflash("unable save now, try later!"); } } }
now when try save data, data validate automatically if define validate rules on model.
Comments
Post a Comment