/** * Creates a new Datenblatt model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Datenblatt(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
/** * Creates a new Person model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $modelDatenblatt = new Datenblatt(); // $modelsKaeufer = $modelDatenblatt->kaeufer; $modelsNachlass = [new Nachlass()]; $modelsZahlung = [new Zahlung()]; // $modelsRoom = [[new Zahlung]]; if ($modelDatenblatt->load(Yii::$app->request->post())) { // $modelsNachlass = DynamicForm::createMultiple(Nachlass::classname()); // DynamicForm::loadMultiple($modelsNachlass, Yii::$app->request->post()); //var_dump($modelDatenblatt); // die('da1'); $modelsZahlung = DynamicForm::createMultiple(Zahlung::classname()); DynamicForm::loadMultiple($modelsZahlung, Yii::$app->request->post()); // validate person and houses models $valid = $modelDatenblatt->validate(); //var_dump($modelsZahlung); // $valid = DynamicForm::validateMultiple($modelsNachlass) && $valid; $valid = DynamicForm::validateMultiple($modelsZahlung, ['betrag']) && $valid; //var_dump($valid); //die; // if (isset($_POST['Room'][0][0])) { // foreach ($_POST['Room'] as $indexNachlass => $rooms) { // foreach ($rooms as $indexRoom => $room) { // $data['Room'] = $room; // $modelRoom = new Room; // $modelRoom->load($data); // $modelsRoom[$indexNachlass][$indexRoom] = $modelRoom; // $valid = $modelRoom->validate(); // } // } // } if ($valid) { $transaction = Yii::$app->db->beginTransaction(); try { if ($flag = $modelDatenblatt->save(false)) { foreach ($modelsNachlass as $indexNachlass => $modelNachlass) { if ($flag === false) { break; } $modelNachlass->datenblatt_id = $modelDatenblatt->id; if (!($flag = $modelNachlass->save(false))) { break; } // if (isset($modelsRoom[$indexNachlass]) && is_array($modelsRoom[$indexNachlass])) { // foreach ($modelsRoom[$indexNachlass] as $indexRoom => $modelRoom) { // $modelRoom->house_id = $modelNachlass->id; // if (!($flag = $modelRoom->save(false))) { // break; // } // } // } } // save zahlungs foreach ($modelsZahlung as $indexZahlung => $modelZahlung) { if ($flag === false) { break; } $modelZahlung->datenblatt_id = $modelDatenblatt->id; if (!($flag = $modelZahlung->save(false))) { break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['update', 'id' => $modelDatenblatt->id]); } else { $transaction->rollBack(); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('create', ['modelDatenblatt' => $modelDatenblatt, 'modelsZahlung' => empty($modelsZahlung) ? [new Zahlung()] : $modelsZahlung, 'modelsNachlass' => empty($modelsNachlass) ? [new Nachlass()] : $modelsNachlass]); }