public function actionImport($importModel) { /** @var ImportModel $model */ $model = new ImportModel(); $model->unserialize($importModel); if ($model->validate()) { /** @var Export $exportStatus */ $importStatus = Import::find()->where(['user_id' => $model->getUser(), 'object_id' => $model->object])->one(); $importStatus->status = Import::STATUS_PROCESS; $importStatus->save(); $filename = $model->getFilename('Import'); $path = \Yii::$app->getModule('data')->importDir . '/' . $filename; if (file_exists($path)) { try { $object = Object::findById($model->object); if ($object === null) { throw new Exception('Object not found'); } $import = \app\modules\data\components\Import::createInstance(['object' => $object, 'filename' => $filename, 'type' => $model->type, 'addPropertyGroups' => $model->addPropertyGroups, 'createIfNotExists' => boolval($model->createIfNotExists), 'multipleValuesDelimiter' => $model->multipleValuesDelimiter, 'additionalFields' => $model->additionalFields]); if ($import->processImport($model->fields)) { $importStatus->status = Import::STATUS_COMPLETE; } else { $importStatus->status = Import::STATUS_FAILED; } $importStatus->save(); } catch (\Exception $e) { $importStatus->status = Import::STATUS_FAILED; $importStatus->save(); echo $e->getMessage(); unset($path); throw $e; } } else { echo "File '{$filename}' is not exist"; throw new Exception("File '{$filename}' is not exist"); } } else { echo 'Model is not valid'; throw new Exception('Model is not valid'); } }
public function getLastImport() { return $this->hasOne(Import::className(), ['object_id' => 'id'])->andOnCondition([Import::tableName() . '.user_id' => Yii::$app->user->id]); }