예제 #1
0
 public function actionAjaxSkus()
 {
     if (!Yii::$app->request->isAjax && empty($_POST['item_id'])) {
         return;
     }
     $skus = \star\catalog\models\Sku::findAll(["item_id" => $_POST["item_id"]]);
     $data = array();
     foreach ($skus as $sku) {
         $arr = array();
         $arr['sku_id'] = $sku->sku_id;
         $json = JSON::decode($sku->props);
         $arr['props'] = implode("_", $json);
         $arr['price'] = $sku->price;
         $arr['stock'] = $sku->quantity;
         $arr['outer_id'] = $sku->outer_id;
         $arr['tag'] = $sku->tag;
         $data[] = $arr;
     }
     echo json_encode($data);
 }
예제 #2
0
파일: Item.php 프로젝트: ASDAFF/OurYincart2
 public function saveSkus($item_id, $skus)
 {
     if (is_array($skus) && count($skus)) {
         $skuArray = array();
         foreach ($skus as $i => $sku) {
             if (isset($sku['sku_id']) && $sku['sku_id']) {
                 $skuModel = Sku::find()->where(['sku_id' => $sku['sku_id']])->one();
             } else {
                 $skuModel = new Sku();
             }
             $skuModel->item_id = $item_id;
             $skuModel->props = $sku['props'];
             $skuModel->props_name = $sku['props_name'];
             $skuModel->quantity = $sku['stock'];
             $skuModel->price = $sku['price'];
             $skuModel->outer_id = $sku['outer_id'];
             if (isset($sku['sku_id']) && $sku['sku_id']) {
                 if ($skuModel->update() === false) {
                     Yii::$app->session->setFlash('sku-error', Yii::t('catalog', 'Every sku must have a value !'));
                     $this->addError('props', Yii::t('catalog', null));
                 }
             } else {
                 if (!$skuModel->save()) {
                     Yii::$app->session->setFlash('sku-error', Yii::t('catalog', 'Every sku must have a value !'));
                     $this->addError('props', Yii::t('catalog', null));
                 }
             }
             $skuArray[$i] = $skuModel->sku_id;
         }
         //删除
         $models = Sku::findAll(['item_id' => $item_id]);
         $delArr = array();
         foreach ($models as $k1 => $v1) {
             if (!in_array($v1->sku_id, $skuArray)) {
                 $delArr[] = $v1->sku_id;
             }
         }
         if (count($delArr)) {
             Sku::deleteAll('sku_id IN (' . implode(', ', $delArr) . ')');
         }
     } else {
         //已经没有SKU了,要清除数据表内容
         Sku::deleteAll(['item_id' => $item_id]);
     }
 }