public function create(AdminAction $adminAction) { $productPrices = []; $modelClassName = $this->modelClassName; $model = new $modelClassName(); $model->loadDefaultValues(); if ($content_id = \Yii::$app->request->get("content_id")) { $contentModel = \skeeks\cms\models\CmsContent::findOne($content_id); $model->content_id = $content_id; } $relatedModel = $model->relatedPropertiesModel; $shopProduct = new ShopProduct(); $shopProduct->loadDefaultValues(); $baseProductPrice = new ShopProductPrice(['type_price_id' => \Yii::$app->shop->baseTypePrice->id, 'currency_code' => \Yii::$app->money->currencyCode]); $shopProduct->baseProductPriceCurrency = \Yii::$app->money->currencyCode; $rr = new RequestResponse(); if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) { $model->load(\Yii::$app->request->post()); $relatedModel->load(\Yii::$app->request->post()); $shopProduct->load(\Yii::$app->request->post()); return \yii\widgets\ActiveForm::validateMultiple([$model, $relatedModel, $shopProduct]); } if ($rr->isRequestPjaxPost()) { $model->load(\Yii::$app->request->post()); $relatedModel->load(\Yii::$app->request->post()); $shopProduct->load(\Yii::$app->request->post()); if ($model->save() && $relatedModel->save()) { $shopProduct->id = $model->id; $shopProduct->save(); $shopProduct->getBaseProductPriceValue(); $baseProductPrice = $shopProduct->baseProductPrice; \Yii::$app->getSession()->setFlash('success', \Yii::t('skeeks/shop/app', 'Saved')); if (\Yii::$app->request->post('submit-btn') == 'apply') { return $this->redirect(UrlHelper::constructCurrent()->setCurrentRef()->enableAdmin()->setRoute($this->modelDefaultAction)->normalizeCurrentRoute()->addData([$this->requestPkParamName => $model->{$this->modelPkAttribute}])->toString()); } else { return $this->redirect($this->indexUrl); } } else { \Yii::$app->getSession()->setFlash('error', \Yii::t('skeeks/shop/app', 'Could not save')); } } return $this->render('_form', ['model' => $model, 'relatedModel' => $relatedModel, 'shopProduct' => $shopProduct, 'productPrices' => $productPrices, 'baseProductPrice' => $baseProductPrice]); }