public function actionAddCombinacion() { $id = Yii::app()->request->getParam('id'); $model = Programa::model()->findByPk($id); $combi = new ProgramaCombinacion(); $ciudad = ProgramaHasCiudad::model()->findAllByAttributes(array('programa_id' => $id)); $ciudades = array(); foreach ($ciudad as $ci) { $hotel = new ProgramaCombinacionHasHotel(); $ciudades[] = array('ciudad' => $ci->ciudad_id, 'hotel' => $hotel); } if (isset($_POST['ProgramaCombinacion'])) { $combi->attributes = $_POST['ProgramaCombinacion']; $combi->programa_id = $id; $error = false; if (isset($_POST['Hotel'])) { foreach ($_POST['Hotel'] as $index => $hotel) { $int = new ProgramaCombinacionHasHotel(); $int->attributes = $hotel; $int->validate(); $ciudades[$index] = array('ciudad' => $hotel['ciudad_id'], 'hotel' => $int); if (count($int->getErrors()) > 0) { $error = true; } } } if ($combi->validate() && $error == false) { if ($combi->save()) { foreach ($ciudades as $ciudad) { $hotel = $ciudad['hotel']; $hotel->programa_combinacion_id = $combi->id; $hotel->save(); } $this->redirect(array('combinaciones', 'id' => $id)); } } } $this->render('createCombinacion', array('model' => $model, 'combi' => $combi, 'ciudades' => $ciudades)); }