public function actionExport($importModel) { /** @var ImportModel $model */ $model = new ImportModel(); $model->unserialize($importModel); if ($model->validate()) { /** @var Export $exportStatus */ $exportStatus = Export::find()->where(['user_id' => $model->getUser(), 'object_id' => $model->object])->one(); $exportStatus->status = Export::STATUS_PROCESS; $exportStatus->save(); try { $object = Object::findById($model->object); if ($object === null) { throw new Exception('Object not found'); } $filename = $model->getFilename('Export'); $import = \app\modules\data\components\Import::createInstance(['object' => $object, 'filename' => $filename, 'type' => $model->type]); $import->processExport($model->fields, $model->conditions); $exportStatus->filename = $filename; $exportStatus->status = Export::STATUS_COMPLETE; $exportStatus->save(); } catch (\Exception $e) { $exportStatus->status = Export::STATUS_FAILED; $exportStatus->save(); echo $e->getMessage(); throw $e; } } else { echo 'Model is not valid'; throw new Exception('Model is not valid'); } }
public function getLastExport() { return $this->hasOne(Export::className(), ['object_id' => 'id'])->andOnCondition([Export::tableName() . '.user_id' => Yii::$app->user->id]); }