I’m using two models to display my data. I created relations between two models. Now, when I’m using update form to edit the fields I get the data of only the first model. But, the fields of second model are empty.But in admin.php, I can get fields of both the models populated. Why not in Update.php?
Below is the code for Update controller:
public function actionUpdate($id)
{ $model_al=new AuditLogin;
//$model_apt=new Apartment;
//$model=$this->loadModel($id);
$model= ApartmentSettings::model()->findByPk($id);
$model_apt = Apartment::model()->findByAttributes(array('Id'=>$model->ApartmentId));
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['ApartmentSettings'])&&isset($_POST['AuditLogin']))
{
$model->attributes=$_POST['ApartmentSettings'];
if($model->save())
$model_al->attributes=$_POST['AuditLogin'];
$approval=Yii::app()->getRequest()->getParam('approval');
echo $approval;
if ($approval==0)
{
$model_al->moduleId="1001";
$model_al->content=$model->GreetingsApprovedSMSText;
$greet_approve=$model->GreetingsApproval;
if ($greet_approve==0)
$model_al->activity="Greetings approval rejected";
else
$model_al->activity="Greetings approval accepted";
echo $approval;
}
elseif($approval==1){
$model_al->moduleId="1002";
$model_al->content=$model->ContactApprovedSMSText;
$contact_approve=$model->ContactApproval;
if ($contact_approve==0)
$model_al->activity="Contact approval rejected";
else
$model_al->activity="Contact approval accepted";
}
elseif($approval==2)
{
if(isset($_POST['Apartment']))
$model_apt->attributes=$_POST['Apartment'];
$model_al->moduleId="1004";
$model_al->activity="Microsite fields updated";
$model_al->content=$_POST['Apartment']['MetatagsDesc'];
$model_apt->save();
}
if($model_al->save())
$this->redirect(array('admin','id'=>$model->Id));
}
$this->render('update',array(
'model'=>$model,'model_apt'=>$model_apt
));
}
Below is the code for Update.php :
<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>
Below is the code for _form.php
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'apartment-settings-form',
'enableAjaxValidation'=>false,
)); ?>
<?php
$approved=$_GET['approval'];
?>
<?php
$model_apt=new Apartment;
echo $form->errorSummary($model);
$model_al=new AuditLogin;
?>
<?php if($approved==0){?>
<div class="row">
<?php echo $form->labelEx($model,'GreetingsApproval'); ?>
<?php echo $form->radioButtonList($model, 'GreetingsApproval',
array( 1 => 'Approved',
0 => 'Rejected',
), array(
'labelOptions'=>array('style'=>'display:inline'), // add this code
'separator'=>' ',
) );
?>
<?php echo $form->error($model,'GreetingsApproval'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'GreetingsApprovedSMSText'); ?>
<?php echo $form->textArea($model,'GreetingsApprovedSMSText',array('rows'=>6, 'cols'=>50)); ?>
<?php echo $form->error($model,'GreetingsApprovedSMSText'); ?>
</div>
<?php } elseif($approved==1){?>
<div class="row">
<?php echo $form->labelEx($model,'ContactApproval'); ?>
<?php echo $form->radioButtonList($model, 'ContactApproval',
array( 1 => 'Approved',
0 => 'Rejected',
),
array(
'labelOptions'=>array('style'=>'display:inline'), // add this code
'separator'=>' ',
) );
?>
<?php echo $form->error($model,'ContactApproval'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'ContactApprovedSMSText'); ?>
<?php echo $form->textArea($model,'ContactApprovedSMSText',array('rows'=>6, 'cols'=>50)); ?>
<?php echo $form->error($model,'ContactApprovedSMSText'); ?>
</div>
<?php }else{ ?>
<div class="row">
<?php echo $form->labelEx($model,'ApartmentId'); ?>
<?php echo $form->textField($model,'ApartmentId',array('readonly' => true)); ?>
<?php echo $form->error($model,'ApartmentId'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_apt, 'GroupzDescription'); ?>
<?php echo $form->textField($model_apt, 'GroupzDescription',array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_apt, 'GroupzDescription'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_apt, 'Latitude'); ?>
<?php echo $form->textField($model_apt, 'Latitude', array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_apt, 'Latitude'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_apt, 'Longitude'); ?>
<?php echo $form->textField($model_apt, 'Longitude', array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_apt, 'Longitude'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_apt, 'MetatagsDesc'); ?>
<?php echo $form->textArea($model_apt, 'MetatagsDesc',array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_apt, 'MetatagsDesc'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_apt, 'MetatagsKeywords'); ?>
<?php echo $form->textArea($model_apt, 'MetatagsKeywords',array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_apt, 'MetatagsKeywords'); ?>
</div>
<?php }?>
<div class="row">
<?php echo $form->labelEx($model_al, 'username'); ?>
<?php $identity=Yii::app()->user->name;?>
<?php echo $form->textField($model_al, 'username',array('value'=>$identity,'readonly' => true), array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_al, 'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_al, 'updatedtime'); ?>
<?php echo $form->textField($model_al, 'updatedtime',array('value'=>date('Y-m-d H:i:s'),'readonly' => true), array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_al, 'updatedtime'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_al, 'comments on approval/rejection'); ?>
<?php echo $form->textField($model_al, 'comments',array('size' => 60, 'maxlength' => 250)); ?>
<?php echo $form->error($model_al, 'comments'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>