2014-03-21 4 views
0

Я имею форму TblRegistration/_form.phpпроверка полей из diffrent моделей в одной форме

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'tbl-registration-form', 
    // Please note: When you enable ajax validation, make sure the corresponding 
    // controller action is handling ajax validation correctly. 
    // There is a call to performAjaxValidation() commented in generated controller code. 
    // See class documentation of CActiveForm for details on this. 
    'enableAjaxValidation'=>true, 
)); ?> 

    <p class="note">Fields with <span class="required">*</span> are required.</p> 


<?php echo $form->errorSummary(array($model,$model1)); ?> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'director'); ?> 
     <?php echo $form->textField($model,'director',array('size'=>50,'maxlength'=>50)); ?> 
     <?php echo $form->error($model,'director'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'experience'); ?> 
     <?php echo $form->textField($model,'experience'); ?> 
     <?php echo $form->error($model,'experience'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'language'); ?> 
     <?php echo $form->textField($model,'language',array('size'=>50,'maxlength'=>50)); ?> 
     <?php echo $form->error($model,'language'); ?> 
    </div> 
<div class="row"> 
     <?php echo $form->labelEx($model1,'email'); ?> 
     <?php echo $form->textField($model1,'email'); ?> 
     <?php echo $form->error($model1,'email'); ?> 
    </div> 
<div class="row"> 
     <?php echo $form->labelEx($model1,'password'); ?> 
     <?php echo $form->textField($model1,'password'); ?> 
     <?php echo $form->error($model1,'password'); ?> 
    </div> 




    <div class="row buttons"> 
     <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?> 
    </div> 

<?php $this->endWidget(); ?> 

Моя actioncreate создать содержит

public function actionCreate() 
    { 
     $model=new TblRegistration; 
     $model1=new TblLogin(); 

     // Uncomment the following line if AJAX validation is needed 
     //$this->performAjaxValidation($model1); 

     if(isset($_POST['TblRegistration']) && isset($_POST['TblLogin'])) 
     { 
      $model->attributes=$_POST['TblRegistration']; 
         $model1->attributes=$_POST['TblLogin']; 
      $model->save(); 
      if($model->save()) 
      { 

        $model1->reg_id=$model->reg_id; 

        $model1->save(); 
      } 
      if(($model->save())&& ($model1->save())) 
       $this->redirect(array('view','id'=>$model->reg_id)); 
     } 

     $this->render('create',array(
      'model'=>$model, 
     )); 
    } 

моих поля электронной почты и пароль от модели TblLogin.I хочу проверить эти поля перед тем, как сохранить данные. Как я могу это сделать?

ответ

0

После:

$model->attributes=$_POST['TblRegistration']; 
$model1->attributes=$_POST['TblLogin']; 

Добавить:

if($model->validate() && $model1->validate()){ 
$model->save(); 
... 
+0

я думаю, что это Виль проверить, происходит ли проверка или нет, но я хочу, чтобы напечатать сообщение проверки в $ model1 элементов в $ моделях форме , –

+0

Правильно, поэтому, если он не проверяется, вы хотите снова просмотреть регистрационное представление, но не передавайте ему пустые модели, передайте текущую модель, потому что, когда проверка выполняется, если она не удалась, она добавляет ошибки в модель. Они будут отображаться в вашей форме. – jdcookie

+0

Сообщение о проверке для первой модели $ model напечатано успешно, но вторая модель $ model1 не работает. –

Смежные вопросы