public function actionUpload_product()
 {
     if (Yii::$app->request->isAjax) {
         $model = new ProductCategory();
         $Product = new Product();
         $ProductImageRel = new ProductImageRel();
         $ProductCategoryRel = new ProductCategoryRel();
         $model_cat_title = UploadedFile::getInstance($model, 'cat_title');
         $time = time();
         $model_cat_title->saveAs('product_uploads/' . $time . $model_cat_title->baseName . '.' . $model_cat_title->extension);
         if ($model_cat_title) {
             $response = [];
             $Product->title = $_POST['title'];
             $Product->desc = $_POST['desc'];
             $Product->status = 1;
             if ($Product->save()) {
                 $ProductCategoryRel->category_id = $_POST['id'];
                 $ProductCategoryRel->product_id = $Product->id;
                 $ProductImageRel->product_id = $Product->id;
                 $ProductImageRel->image = $time . $model_cat_title->baseName . '.' . $model_cat_title->extension;
                 if ($ProductCategoryRel->save() && $ProductImageRel->save()) {
                     $response['files'][] = ['name' => $time . $model_cat_title->name, 'type' => $model_cat_title->type, 'size' => $model_cat_title->size, 'url' => Url::base() . '/product_uploads/' . $time . $model_cat_title->baseName . '.' . $model_cat_title->extension, 'deleteUrl' => Url::to(['delete_uploaded_file', 'file' => $model_cat_title->baseName . '.' . $model_cat_title->extension]), 'deleteType' => 'DELETE'];
                     $response['base'] = $time . $model_cat_title->baseName;
                     $response['view'] = $this->renderAjax('uploaded_product', ['url' => Url::base() . '/product_uploads/' . $time . $model_cat_title->baseName . '.' . $model_cat_title->extension, 'basename' => $time . $model_cat_title->baseName, 'id' => $ProductImageRel->id, 'model' => $Product]);
                 }
             } else {
                 $response['errors'] = $product->getErrors();
             }
             return json_encode($response);
         }
     }
 }
Beispiel #2
0
 public static function update_product_category_rel($model)
 {
     ProductCategoryRel::deleteAll(['product_id' => $model->product_id]);
     foreach ($model->category_id as $key => $value) {
         $new_model = new ProductCategoryRel();
         $new_model->product_id = $model->product_id;
         $new_model->category_id = $value;
         if ($new_model->save()) {
         } else {
             throw new NotFoundHttpException('The requested page does not exist.');
         }
     }
     return true;
 }
 public function actionUpdate_ajax()
 {
     if (Yii::$app->request->isAjax) {
         if (isset($_POST['Product'])) {
             $model = $this->findModel($_POST['Product']['id']);
             $model->attributes = $_POST['Product'];
             if ($model->save()) {
                 $ProductCategoryRel = new ProductCategoryRel();
                 $ProductCategoryRel->product_id = $model->id;
                 if (empty($_POST['ProductCategoryRel'])) {
                     ProductCategoryRel::deleteAll(['product_id' => $ProductCategoryRel->product_id]);
                     $ProductCategoryRel->category_id = 0;
                     $ProductCategoryRel->save();
                 } else {
                     $ProductCategoryRel->category_id = $_POST['ProductCategoryRel']['category_id'];
                     Product::update_product_category_rel($ProductCategoryRel);
                 }
                 $response['files'] = '<img src="' . Url::base() . '/product_uploads/' . $model->product_image[0]->image . '" alt="' . $model->product_image[0]->image . '" width="100%">';
                 $response['id'] = $model->id;
                 $response['title'] = $model->title;
                 $response['result'] = 'success';
                 return json_encode($response);
             } else {
                 $response['result'] = 'error';
                 $response['files'] = Html::errorSummary($model);
                 return json_encode($response);
             }
         }
     }
 }