Hi,
I can insert many values for members using multimodelform extension. Later a need to remove one maybe more, but when i remove this items in client side from members using update action, that items exist still in database, they were updated to empty values.
Master-> Clientetarjeta
Members-> ClienteNumerotelefono
form ajaxvalidation is enabled;
I can insert many values for members using multimodelform extension. Later a need to remove one maybe more, but when i remove this items in client side from members using update action, that items exist still in database, they were updated to empty values.
Master-> Clientetarjeta
Members-> ClienteNumerotelefono
form ajaxvalidation is enabled;
public function actionCreate() { $model = new Cliente; $clientepreguntasecreta = new ClientePreguntaSecreta; $clientetarjeta = new ClienteTarjeta; $clientenumerotelefono = new ClienteNumerotelefono; $validatedMembers = array(); $this->performAjaxValidation(array($model,$clientepreguntasecreta,$clientetarjeta), 'cliente-form'); if (isset($_POST['Cliente'],$_POST['ClientePreguntaSecreta'],$_POST['ClienteTarjeta'],$_POST['ClienteNumerotelefono'])) { $model->setAttributes($_POST['Cliente']); $clientepreguntasecreta->setAttributes($_POST['ClientePreguntaSecreta']); $clientetarjeta->setAttributes($_POST['ClienteTarjeta']); $clientenumerotelefono->setAttributes($_POST['ClienteNumerotelefono']); $valid = $model->validate(); $valid = $clientepreguntasecreta->validate(); $valid = $clientetarjeta->validate() && $valid; $detailOK = MultiModelForm::validate($clientenumerotelefono,$validatedMembers,$deleteItems); if ($valid && $detailOK) { if ($model->save(false)) { $clientepreguntasecreta->idcliente = $model->idcliente; $clientepreguntasecreta->save(false); $clientetarjeta->idcliente = $model->idcliente; $clientetarjeta->idusuario = 1; if (empty($validatedMembers)){ $clientetarjeta->save(false); $this->redirect(array('view','id'=>$model->idcliente)); } else{ if ($detailOK && $clientetarjeta->save(false)){ $masterValues = array ('idcliente_tarjeta'=>$clientetarjeta->idcliente_tarjeta); if (MultiModelForm::save($clientenumerotelefono,$validatedMembers,$deleteItems,$masterValues)){ $this->redirect(array('view','id'=>$model->idcliente)); } } } } } } $this->render('create', array( 'model' => $model,'clientepreguntasecreta'=>$clientepreguntasecreta, 'clientetarjeta'=>$clientetarjeta,'clientenumerotelefono'=>$clientenumerotelefono, 'validatedMembers' => $validatedMembers)); }
public function actionUpdate($id) { $model = $this->loadModel($id, 'Cliente'); $clientepreguntasecreta = $this->loadModel($id, 'ClientePreguntaSecreta'); $clientetarjeta = $this->loadModel($id, 'ClienteTarjeta'); $clientenumerotelefono = $this->loadModel($clientetarjeta->idcliente_tarjeta, 'ClienteNumerotelefono'); $validatedMembers = array(); $this->performAjaxValidation(array($model,$clientepreguntasecreta,$clientetarjeta), 'cliente-form'); if (isset($_POST['Cliente'],$_POST['ClientePreguntaSecreta'],$_POST['ClienteTarjeta'],$_POST['ClienteNumerotelefono'])) { $model->setAttributes($_POST['Cliente']); $clientepreguntasecreta->setAttributes($_POST['ClientePreguntaSecreta']); $clientetarjeta->setAttributes($_POST['ClienteTarjeta']); if (!empty ($clientenumerotelefono)){ $clientenumerotelefono->setAttributes($_POST['ClienteNumerotelefono']); } $valid = $model->validate(); $valid = $clientepreguntasecreta->validate(); $valid = $clientetarjeta->validate() && $valid; $detailOK = MultiModelForm::validate($clientenumerotelefono,$validatedMembers,$deleteItems); if ($valid && $detailOK) { if ($model->save(false)) { $clientepreguntasecreta->idcliente = $model->idcliente; $clientepreguntasecreta->save(false); $clientetarjeta->idcliente = $model->idcliente; $clientetarjeta->idusuario = 1; if (empty($validatedMembers)){ $clientetarjeta->save(false); $this->redirect(array('view','id'=>$model->idcliente)); } if ($detailOK){ $clientetarjeta->save(false); $masterValues = array ('idcliente_tarjeta'=>$clientetarjeta->idcliente_tarjeta); if (MultiModelForm::save($clientenumerotelefono,$validatedMembers,$deleteItems,$masterValues)){ $this->redirect(array('view','id'=>$model->idcliente)); } } } } }