ItemController::actionCreate PHP Method

actionCreate() public method

If creation is successful, the browser will be redirected to the 'view' page.
public actionCreate ( )
    public function actionCreate()
    {
        Yii::import("ext.xupload.models.XUploadForm");
        $model = new Item('create');
        $upload = new XUploadForm();
        $image = new ItemImg();
        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);
        $action = 'item';
        if (isset($_POST['Item'])) {
            $model->attributes = $_POST['Item'];
            //	    $model->sn = 'YC' . date('Ymd') . mt_rand(10000, 99999);
            $model->store_id = $_SESSION['store']['store_id'];
            if ($_POST['Item']['props']) {
                //		foreach ($_POST['Item']['props'] as $key => $value) {
                //		    $p = ItemProp::model()->findByPk($key);
                //
                //		    if ($p->type == 'multiCheck') {
                ////			$values = implode($value, ',');
                //			$p_arr[] = $value;
                //			foreach ($value as $kk => $vv) {
                //			    $v = PropValue::model()->findByPk($vv);
                //			    $value_name[] = $v->value_name;
                //			}
                //			$value_names = implode($value_name, ',');
                //			$v_arr[] = $p->prop_name . ':' . $value_names;
                //		    } elseif ($p->type == 'optional') {
                //			$v_o = $value ? explode(':', $value) : 0;
                //			$p_arr[] = $key . ':' .($v_o != 0 ? $v_o[1] : 0);
                //			$v = PropValue::model()->findByPk($value);
                //			$v_arr[] = $p->prop_name . ':' . $v->value_name;
                //		    } elseif ($p->type == 'input') {
                //		    //如果是文本框输入的话 不纳入搜索
                //		    //也就不纳入到props里 只保存到prop_names里
                //			$p_arr[] = $key . ':' . $value;
                //			$v_arr[] = $p->prop_name . ':' . $value;
                //		    }
                //		}
                //		$props = implode($p_arr, ';');
                $model->props = CJSON::encode($_POST['Item']['props']);
                //		$props_name = implode($v_arr, ';');
                //		$model->props_name = $props_name;
            }
            if ($_POST['Item']['skus']) {
                //			foreach ($_POST['Item']['skus'] as $s_key => $s_value) {
                //			    $skus[] = implode($s_value['props'], ';').';'.$s_value['quantity'].';'.$s_value['price'];
                //			}
                $model->skus = CJSON::encode($_POST['Item']['skus']);
                //			$model->skus = implode($skus, ',');
            }
            $transaction = Yii::app()->db->beginTransaction();
            //	    print_r($_POST);
            //	    exit;
            try {
                if ($model->save()) {
                    $skuIds = array();
                    if ($_POST['Item']['skus']) {
                        foreach ($_POST['Item']['skus']['table'] as $s_key => $s_value) {
                            $sku = new Sku();
                            $sku->item_id = $model->item_id;
                            $sku->props = CJSON::encode($s_value['props']);
                            $sku->quantity = $s_value['quantity'];
                            $sku->price = $s_value['price'];
                            $sku->outer_id = $s_value['outer_id'];
                            $sku->status = $s_value ? 'normal' : 'deleted';
                            $sku->save();
                            if ($sku->sku_id > 0) {
                                $skuIds[] = $sku->sku_id;
                            }
                        }
                    }
                    $transaction->commit();
                    $skus_data = implode(",", $skuIds);
                    //储存为淘宝sku[]格式。
                    $sql = 'UPDATE {{item}} SET `skus_data`="' . $skus_data . '" WHERE item_id=' . $model->item_id;
                    Yii::app()->db->createCommand($sql)->execute();
                    $this->redirect(array('view', 'id' => $model->item_id));
                }
            } catch (Exception $e) {
                $transaction->rollback();
                Yii::app()->handleException($e);
            }
        }
        $this->render('create', array('model' => $model, 'image' => $image, 'upload' => $upload));
    }