Suggest a better way to implement below code
public function actionCreate()
{
$model = new ProductRating;
$ProductRatingDetail = new ProductRatingDetail;
$Comment = new Comment;
// UnComment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
$model->type = 'critic';
if(isset($_POST['ProductRating']))
{
$model->attributes=$_POST['ProductRating'];
if($model->save())
{
$ProductRatingDetail->product_rating_id = $model->id;
$Comment->attributes = array(
'user_id' => $model->user_id ,
'comment' => $_POST['Comment']['comment'],
'>product_rating_id' => $model->id
);
if($ProductRatingDetail->save() and $Comment -> save())
{
$this->redirect(array('/ProductRatingDetails/view/'.$ProductRatingDetail->id));
}
else
{
if($ProductRatingDetail->id)
{
$ProductRatingDetail->delete();
}
if($model->id)
{
$model->delete();
}
if($Comment->id)
{
$Comment->delete();
}
}
}
}
$this->render('create',array(
'model'=>$model, 'ProductRatingDetail'=> $ProductRatingDetail, 'Comment'=> $Comment
));
}
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'product-rating-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php //echo CHtml::errorSummary(array($model, $Comment)); ?>
<div class="control-group">
<?php echo $form->labelEx($model,'user_id'); ?>
<div class="control">
<?php echo $form->dropDownList($model,'user_id',
$userSelected + CHtml::listData(User::model()->dropdown(array("critic","prouser")),'id','name','UserType.name') ,
array('empty'=>'Select','required'=>'required')); ?>
<?php echo $form->error($model,'user_id'); ?>
</div>
</div>
<div class="control-group">
<?php echo $form->labelEx($model,'product_id'); ?>
<div class="control">
<?php echo $form->dropDownList($model,'product_id',
CHtml::listData(Product::model()->dropdown(),'id','name'),
array('empty'=>'Select','required'=>'required')); ?>
<?php echo $form->error($model,'product_id'); ?>
</div>
</div>
<div class="control-group">
<?php echo $form->labelEx($model,'rate'); ?>
<div class="control">
<?php echo $form->dropDownList($model,'rate', range(0,10),
array('empty'=>'Select','required'=>'required')); ?>
<?php echo $form->error($model,'rate'); ?>
</div>
</div>
<div class="control-group">
<?php echo $form->labelEx($model,'type'); ?>
<div class="control">
<?php echo $form->dropDownList($model,'type',
ZHtml::enumItem( $model,'type'),
array('required'=>'required')); ?>
<?php echo $form->error($model,'type'); ?>
</div>
</div>
<div class="control-group">
<?php echo $form->labelEx($Comment,'comment'); ?>
<div class="control">
<?php echo $form->textArea($Comment,'comment',array('rows'=>6, 'cols'=>50)); ?>
<?php echo $form->error($Comment,'comment'); ?>
</div>
</div>
<div class="form-actions">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save', array ('class'=>'btn btn-primary')); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->