public function actionParsing() { $num = 0; $fields = []; $values = []; $log = ''; $route = ''; $model = new LogUpload(); $date = date('Ymdhis') . Yii::$app->user->identity->id; if (Yii::$app->request->isPost) { $model->fileori = UploadedFile::getInstance($model, 'fileori'); if ($model->validate()) { $fileOri = Yii::getAlias(LogUpload::$imagePath) . $model->fileori->baseName . '.' . $model->fileori->extension; $filename = Yii::getAlias(LogUpload::$imagePath) . $date . '.' . $model->fileori->extension; $model->fileori->saveAs($filename); } $params = Util::excelParsing(Yii::getAlias($filename)); $model->params = \yii\helpers\Json::encode($params); $model->title = 'parsing Setting'; $model->fileori = $fileOri; $model->filename = $filename; if ($params) { foreach ($params as $k => $v) { foreach ($v as $key => $val) { if ($num == 0) { $fields[$key] = $val; $max = $key; } if ($num >= 3) { $values[$num][$fields[$key]] = $val; } } $num++; } } if (in_array('id', $fields)) { $model->type = LogUpload::TYPE_UPDATE; } else { $model->type = LogUpload::TYPE_INSERT; } $model->keys = \yii\helpers\Json::encode($fields); $model->values = \yii\helpers\Json::encode($values); if ($model->save()) { $log = 'log_Setting' . Yii::$app->user->id; Yii::$app->session->setFlash('success', 'Well done! successfully to Parsing data, see log on log upload menu! Please Waiting for processing indicator if available... '); Yii::$app->session->set($log, $model->id); $notification = new \sintret\gii\models\Notification(); $notification->title = 'parsing Setting'; $notification->message = Yii::$app->user->identity->username . ' parsing Setting '; $notification->params = \yii\helpers\Json::encode(['model' => 'Setting', 'id' => $model->id]); $notification->save(); } } $route = 'setting/parsing-log'; return $this->render('parsing', ['model' => $model, 'log' => $log, 'route' => $route]); }