Есть код формы:
Код: Выделить всё
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'product-form',
'enableAjaxValidation'=>true,
'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>
<?php echo $form->errorSummary(array($model,$modelDescription)); ?>
<div class="row">
<?php echo $form->labelEx($model,'title'); ?>
<?php echo $form->textField($model,'title',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model,'title'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($modelDescription,'description'); ?>
<?php echo $form->textField($modelDescription,'description'); ?>
<?php echo $form->error($modelDescription,'description'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Создать' : 'Сохранить'); ?>
</div>
<?php $this->endWidget(); ?>
Код: Выделить всё
$model=new Product;
$modelDescription = new ProductDescription;
$this->performAjaxValidation( array($model,$modelDescription) );
if( isset($_POST['Product'],$_POST['ProductDescription']) )
{
$model->attributes=$_POST['Product'];
$modelDescription->attributes = $_POST['ProductDescription'];
$modelDescription->product_id = $model->id;
$errors['valid'] = $model->validate();
$errors['valid'] = $errors['valid'] && $modelDescription->validate();
if($errors['valid']){
$transaction=Yii::app()->db->beginTransaction();
try{
if(!$model->save()){
throw new Exception('Ошибка при сохранении формы "Данные"');
}
if(!$modelDescription->save()){
throw new Exception('Ошибка при сохранении формы "Описание"');
}
$transaction->commit();
}catch( Exception $e ){
$transaction->rollback();
}
}
Код: Выделить всё
$errors['valid'] = $model->validate();
$errors['valid'] = $errors['valid'] && $modelDescription->validate();
Заранее благодаре!