Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.07 KB | None | 0 0
  1. public function actionCreate()
  2.     {
  3.         $model = new Product();
  4.         $categories = Category::find()->all();
  5.         $selectCategories = [];
  6.  
  7.         if ($post = Yii::$app->request->post()) {
  8.             $model->templateFields = ArrayHelper::getValue($post, 'templateFields');
  9.             $selectCategories = ArrayHelper::getValue($post, 'Product.selectCategories');
  10.         }
  11.         $isOk = true;
  12.         $transaction = Product::getDb()->beginTransaction();
  13.         if ($model->load($post) && $isOk &= $model->save()) {
  14.             if (is_array($selectCategories)) {
  15.                 $id = $model->id;
  16.                 ProductCategory::deleteAll(['product_id' => $id]);
  17.                 foreach ($selectCategories as $categoryId) {
  18.                     $productCategory = new ProductCategory();
  19.                     $productCategory->product_id = $id;
  20.                     $productCategory->category_id = $categoryId;
  21.                     $isOk &= $productCategory->save();
  22.                 }
  23.             }
  24.             if (!empty($model->templateFields)) {
  25.                 foreach ($model->templateFields as $position => $fields) {
  26.                     foreach ($fields as $name => $value) {
  27.                         $file = UploadedFile::getInstanceByName('imageFiles['.$position.']['.$name.']');
  28.                         if ($file) {
  29.                             $fileName = uniqid().'.'.$file->extension;
  30.                             $file->saveAs(\Yii::getAlias('@webroot/uploads/'.$fileName));
  31.                             $model->templateFields[$position][$name] = $fileName;
  32.                         }
  33.                     }
  34.                 }
  35.                 $isOk &= $model->save(false);
  36.             }
  37.             if ($isOk) {
  38.                 $transaction->commit();
  39.             } else {
  40.                 $transaction->rollBack();
  41.             }
  42.  
  43.             return $this->redirect(['index']);
  44.         } else {
  45.             return $this->render('create', [
  46.                 'model' => $model,
  47.                 'categories' => $categories,
  48.             ]);
  49.         }
  50.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement