Hi , You are providing wrong relations
relationships: Student hasOne MerryParent (Correct) MerryParent hasMany Student (Wrong) it should be MerryParent belongsTo Student because In your case Student is the parent table and MerryParent is the child table. Regards, Chaitanya. On Tue, Jul 5, 2011 at 10:28 AM, varai <[email protected]> wrote: > Hi, > > I'm having 2 related models in 1 form (add.ctp) but validation is > working only for 1 model. ie. validation is working fine for Student > model but not MerryParent model. > > Can anyone tell me on what i'm doing wrong? thank you. > > relationships: > Student hasOne MerryParent > MerryParent hasMany Student > > student.php > <?php > class Student extends AppModel{ > var $name='Student'; > var $hasOne=array( > 'MerryParent' => array( > 'className' => 'MerryParent', > 'foreignKey'=>'student_id', > 'dependent' => true) > ); > var $belongsTo='MerryClass'; > > var $validate=array( > > 'name'=>array('rule'=>array('minLength',1),'message'=>'Name is > required!'), > 'dob'=>array('rule'=>'notEmpty','message'=>'Date of > Birth is > required!'), > 'class_id'=>array('rule'=>'notEmpty', > 'message'=>'Which class are > you enquiring about?') > ); > > } > ?> > > students_controller.php > <?php > class StudentsController extends AppController{ > > function add(){ > if (!empty($this->data)){ > var_dump($this->data); > die(debug($this->Student->validationErrors)); > if ($this->Student->saveAll($this->data)) > { > $this->Session->setFlash('Your child\'s > admission has been > received. We will send you an email shortly.'); > > $this->redirect(array('controller'=>'pages', 'action'=>'home')); > > } > > /* else > { > //die(debug($this->Student->validationErrors)); > > $this->Session->setFlash('Your child\'s admission > failed to > save.'); > > //$this->redirect(array('controller'=>'pages', > 'action'=>'home')); > > }*/ > } //for if (!empty.... > }//end function > } > ?> > > merryparent.php > <?php > class MerryParent extends AppModel{ > var $name='MerryParent'; > var $hasMany=array( > 'Student'=>array( > 'className'=>'Student', > 'foreignKey'=>'parent_id' > ) > ); > var $belongsTo='State'; > var > $validate=array('initial'=>array('rule'=>'notEmpty','message'=>'Please > select your initial'), > > 'name'=>array('rule'=>array('minLength',1),'message'=>'Name is > required!'), > > 'email'=>array('rule'=>'email','message'=>'Valid email address > required!','required'=>true, 'allowEmpty'=>false), > > 'landline'=>array('rule'=>array('custom','/(0[0-9]{2,4}-[2-9][0-9] > {5,7})/'), 'required'=>false, 'allowEmpty'=>true, 'message'=>'Invalid > phone number! phone number format: eg 020-22345678 OR 0544-7573758 OR > 02345-874567 '), > > 'mobile'=>array('rule'=>array('custom','/([89]{1}[0-9]{9})/'), > 'required'=>true, 'allowEmpty'=>false, 'message'=>'Invalid mobile > number! mobile number format: eg 9876543211'), > > 'address'=>array('rule'=>array('alphaNumeric',array('minLength', > 1),'required'=>true, 'allowEmpty'=>false, 'message'=>'Please enter > your address.'), > > 'city'=>array('rule'=>'notEmpty','message'=>'Please select your > city','required'=>true, 'allowEmpty'=>false), > > 'state'=>array('rule'=>'notEmpty','message'=>'Please select your > state','required'=>true, 'allowEmpty'=>false), > > 'postal_code'=>array('rule'=>array('numeric',6),'message'=>'valid > postal code required!','required'=>true, 'allowEmpty'=>false) > ?> > > merryparents_controller.php > <?php > class MerryParentsController extends AppController{ > > var $name='MerryParents'; > > function index(){ > var_dump($this->data); > die(debug($this->MerryParent->ValidationErrors)); > } > > } > ?> > > add.ctp > <?php > echo $form->create('Student', array('action'=>'add')); > echo '<fieldset>'; > echo '<legend>Student Information</legend>'; > echo $form->input('Student.name'); > > $options = array('Male'=>'Male','Female'=>'Female'); > $attributes = array('value'=>'Male'); > echo $form->radio('Student.gender',$options,$attributes); > > echo $form->input('Student.dob', array('label'=>'Date of Birth', > 'dateFormat'=>'DMY', > 'empty'=>true, > 'timeFormat' => '', > 'minYear' => ( > date('Y') - 5 > ), > 'maxYear' => ( > date('Y') - 2 > ) > )); > echo $form->input('Student.class_id', > array( > 'label'=>'Enquiry Class for', > 'empty'=>true, > > 'options'=>array('1'=>'Playgroup','2'=>'Nursery','3'=>'LKG', > '4'=>'UKG') > ) > ); > echo '</fieldset>'; > > echo '<fieldset>'; > echo '<legend>Parent Information</legend>'; > /* echo $form->input('MerryParent.id', array('type'=>'hidden')); > */ echo $form->input('MerryParent.initial', > array('empty'=>true, > 'options'=>array('Dr'=>'Dr', > 'Mr'=>'Mr', > 'Mrs'=>'Mrs', > 'Ms'=>'Ms') > ) > ); > echo $form->input('MerryParent.name', > array('label'=>'Parent/Guardian > Name')); > echo $form->input('MerryParent.email'); > echo $form->input('MerryParent.landline'); > echo $form->input('MerryParent.mobile'); > echo $form->input('MerryParent.address'); > echo $form->input('MerryParent.city'); > echo $form->input('MerryParent.state', array('empty'=>true)); > echo $form->input('MerryParent.postal_code'); > echo '</fieldset>'; > //pr ($this->validationErrors); > echo $form->end('Submit'); > ?> > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and help > others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [email protected] For more options, visit this group > at http://groups.google.com/group/cake-php > -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
