Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function actionCreate()
- {
- $model = new Product();
- $categories = Category::find()->all();
- $selectCategories = [];
- if ($post = Yii::$app->request->post()) {
- $model->templateFields = ArrayHelper::getValue($post, 'templateFields');
- $selectCategories = ArrayHelper::getValue($post, 'Product.selectCategories');
- }
- $isOk = true;
- $transaction = Product::getDb()->beginTransaction();
- if ($model->load($post) && $isOk &= $model->save()) {
- if (is_array($selectCategories)) {
- $id = $model->id;
- ProductCategory::deleteAll(['product_id' => $id]);
- foreach ($selectCategories as $categoryId) {
- $productCategory = new ProductCategory();
- $productCategory->product_id = $id;
- $productCategory->category_id = $categoryId;
- $isOk &= $productCategory->save();
- }
- }
- if (!empty($model->templateFields)) {
- foreach ($model->templateFields as $position => $fields) {
- foreach ($fields as $name => $value) {
- $file = UploadedFile::getInstanceByName('imageFiles['.$position.']['.$name.']');
- if ($file) {
- $fileName = uniqid().'.'.$file->extension;
- $file->saveAs(\Yii::getAlias('@webroot/uploads/'.$fileName));
- $model->templateFields[$position][$name] = $fileName;
- }
- }
- }
- $isOk &= $model->save(false);
- }
- if ($isOk) {
- $transaction->commit();
- } else {
- $transaction->rollBack();
- }
- return $this->redirect(['index']);
- } else {
- return $this->render('create', [
- 'model' => $model,
- 'categories' => $categories,
- ]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement