actualizar un modelo

Buenas tardes comunidad estoy teniendo el siguiente problema , tengo un controlador que me carga dos modelos clients y clientsviewpermission , al momento de guardar lo hace muy bien guarda en las dos tablas respectivamente,pero cuando se realiza el update me crea nuevamente otros dos registros como si estuviera creando en vez de actulizando. Lo que nesesito es que me actulize el modelo clients pero en clientsviewpermission si adicione otro registro

CONTROLADORES




public function actionCreate()

	{       $modelo2=new ClientViewPermissions; 

		$model=new Clients;

		$ids =Yii::app()->user->id	;		

		if(empty($model->user_id)) {

			$model->user_id = $ids; 

		}			

		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);       

		if(isset($_POST['Clients'],$_POST['ClientViewPermissions']))

		{   

			$model->attributes=$_POST['Clients'];

			$modelo2->attributes=$_POST['ClientViewPermissions'];	                     

			$valid= $model->validate();

			$valid=$modelo2->validate() && $valid;

			if($valid){	

			 if($model->save()){

				$modelo2->client_id= $model->id;	 

			        if($modelo2 -> save())  

				   $this->redirect(array('admin','id'=>$model->id));

	      }			

	     }

		}

		$this->render('create',array(

			'model'=>$model,

			'modelo2'=>$modelo2,

			

		));

	}


public function actionUpdate($id)

{   

$model=$this->loadModel($id);

$modelo2 = ClientViewPermissions :: model () -> findByAttributes (array ( 'client_id' => $model -> id)); 

if(isset($_POST['Clients'],$_POST['ClientViewPermissions']))

 {		

   $modelo2->attributes=$_POST['ClientViewPermissions'];

   $valid=$model->validate();

   $valid=$modelo2->validate() && $valid;

   $model->setIsNewRecord(false);

   if ($model->update()&& $modelo->save()) {

      if (! empty ($modelo2)) { 

	       $modelo2->client_id= $model->id;

	       $modelo2->save(); 

			      }		

    $this->redirect(array('view','id'=>$model->id));

	               			   }				

		}

   $this->render('update',array('model'=>$model,'modelo2'=>$modelo2));

	}

		




PD: La base de datos no es relacional

Si llamas al método update no te hace falta llamar al método save.

No entiendo muy bien tu código del update…

De todas formas, supongo que con esto te valdría.




...

$model->isNewRecord = false;

$modelo2->isNewRecord = true;

...



Un saludo.