/** * Creates a new ImportProducts model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new ImportProducts(); if ($model->load(Yii::$app->request->post())) { $dirStorage = Yii::getAlias('@webroot') . '/import/'; $file = UploadedFile::getInstance($model, 'filename'); if (isset($file) && $file != "") { $model->filename = $model->uploadXml($file, $dirStorage); $model->save(); } $report = $model->transferXmlToDb(); $model->countXml = $report['countXml']; $model->countDb = $report['countDb']; $reportString = 'Количество товаров в xml: ' . $report['countXml'] . '<br>'; $reportString .= 'Количество товаров импортированных в приложение: ' . $report['countDb'] . '<br>'; if (!empty($report['notImport'])) { $reportString .= '<b>Список не импортированных товаров:</b><br>'; $list = ''; foreach ($report['notImport'] as $product) { $reportString .= $product . '<br>'; $list .= $product . '<br>'; } $model->notImport = $list; } else { $reportString .= '<b>Все товары импортированы в приложение<b>'; } $model->save(); Yii::$app->session->setFlash('success', 'XML-файл успешно импортирован. Данные в БД-приложения заменены.<br>' . $reportString); return $this->redirect(['index']); } else { return $this->render('create', ['model' => $model]); } }