Open Edenloba opened 7 years ago
Hello,
I like your extension! I've implemented dynamicform in my project, i can create, but it does not update the data. Please advice!
My model is:
<?php
namespace backend\modules\siens\models;
use Yii; use yii\db\ActiveRecord; use yii\behaviors\AttributeBehavior; /**
/**/ My Controller actionUpdate is:
public function actionUpdate($id) { $model = $this->findModel($id); // crea una instancia con la ficha actual $modelsMiembro = $model->padronTemps; // crea un array con el detalle previo if ($model->load(Yii::$app->request->post()) ) { $oldIDs = ArrayHelper::map($modelsMiembro, 'id', 'id'); // array $modelsMiembro = Model::createMultiple(PadronTemp::classname(), $modelsMiembro); Model::loadMultiple($modelsMiembro, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsMiembro, 'id', 'id'))); // validate all models $valid = $model->validate(); $valid = Model::validateMultiple($modelsMiembro) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (! empty($deletedIDs)) { PadronTemp::deleteAll(['id' => $deletedIDs]); } foreach ($modelsMiembro as $modelMiembro) { //$modelMiembro->customer_id = $model->id; $modelMiembro->ppt_num_vivienda = $model->vivt_numero; if (! ($flag = $modelMiembro->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $model->vivt_numero]); } } catch (Exception $e) { $transaction->rollBack(); } } } //else { return $this->render('update', [ 'model' => $model, 'modelsMiembro' => (empty($modelsMiembro)) ? [new PadronTemp] : $modelsMiembro ]); //} }
Hello,
I like your extension! I've implemented dynamicform in my project, i can create, but it does not update the data. Please advice!
My model is:
<?php
namespace backend\modules\siens\models;
use Yii; use yii\db\ActiveRecord; use yii\behaviors\AttributeBehavior; /**
/**/ My Controller actionUpdate is: