Example #1
0
 /**
  * Updates an existing DataManagement model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param string $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $model = $this->findModelUpdatable($id);
     $domisili = new TabelDomisili();
     $currentDomisili = TabelDomisili::find()->where('current = 1 and nik = ' . $id)->one();
     $lokasi = new \yii\base\DynamicModel(['alamat', 'kelurahan', 'kecamatan', 'kabupaten', 'provinsi']);
     $lokasi->addRule(['kelurahan', 'kecamatan', 'kabupaten', 'provinsi'], 'string', ['max' => 20])->addRule(['alamat'], 'string', ['max' => 255]);
     $lokasi->alamat = $currentDomisili['alamat'];
     $lokasi->kelurahan = $currentDomisili['kelurahan'];
     $lokasi->kecamatan = substr($lokasi->kelurahan, 0, strlen($lokasi->kelurahan) - 3);
     $lokasi->kabupaten = substr($lokasi->kecamatan, 0, strlen($lokasi->kecamatan) - 3);
     $lokasi->provinsi = substr($lokasi->kabupaten, 0, strlen($lokasi->kabupaten) - 2);
     if ($model->load(Yii::$app->request->post()) && $domisili->load(Yii::$app->request->post()) && $lokasi->load(Yii::$app->request->post()) && $model->save()) {
         // VarDumper::dump($_POST["DynamicModel"]["kelurahan"], 6666, true);
         echo Yii::$app->request->post("DynamicModel['kelurahan']");
         if ($_POST["DynamicModel"]["kelurahan"] != $currentDomisili['kelurahan'] || $_POST["TabelDomisili"]["alamat"] != $currentDomisili['alamat']) {
             $domisili->current = 1;
             $domisili->nik = $id;
             $domisili->nik_pencatat = Yii::$app->user->id;
             $domisili->kelurahan = $lokasi->kelurahan;
             $domisili->save(false);
             $currentDomisili['current'] = 0;
             $currentDomisili->update();
         }
         //VarDumper::dump($domisili->getErrors(),5678,true);
         //VarDumper::dump($model->getErrors(),5678,true);
         //echo var_dump($domisili);
         $this->writeLog('Memperbarui Data dengan NIK ' . $model->nik);
         return $this->redirect(['view', 'id' => $model->nik]);
     } else {
         return $this->render('update', ['model' => $model, 'updatable' => $model, 'domisili' => $currentDomisili, 'lokasi' => $lokasi]);
     }
 }