کلاس اضافه و حذف کردن به شکل زیر بود حالا چطور با این شرایط تغییرش بدم
loadModel($id); $cart = Yii::$app->session->get('cart'); if(!isset($cart['id']) == $id){ $cart[] = ['id' => $id, 'qty' => 1, 'color' => $color, 'size' => $size]; } else { $cart[] = ['id' => $id, 'qty' => 2, 'color' => $color, 'size' => $size]; } Yii::$app->session->set('cart', $cart); $this->goBack(); } public function actionPlus($id) { $this->loadModel($id); $cart = Yii::$app->session->get('cart'); $cart['id']['qty']++; Yii::$app->session->set('cart', $cart); $this->goBack(); } public function actionSub($id) { $this->loadModel($id); $cart = Yii::$app->session->get('cart'); if(isset($cart[$id])){ $cart[$id]--; if($cart[$id] <= 0){ unset($cart[$id]); } Yii::$app->session->set('cart', $cart); } $this->goBack(); } public function actionRemove($id) { $this->loadModel($id); $cart = Yii::$app->session->get('cart'); if(isset($cart['id'])){ unset($cart[$id]); Yii::$app->session->set('cart', $cart); } $this->goBack(); } public function actionClear() { Yii::$app->session->set('cart', []); $this->goHome(); } public function actionSave() { $carts = Yii::$app->session->get('cart'); if(empty($carts)){ $this->goHome(); } $total = 0; foreach($carts as $cart){ if($model = $this->loadModel($cart['id'])){ $total += $model->price * $cart['qty']; } } $total += 70000; $order = new Orders(); $order->userID = Yii::$app->user->id; $order->totals = $total; $order->ts = time(); $order->confirm = 0; if($order->save()){ foreach ($carts as $cart){ if($model = $this->loadModel($cart['id'])){ $orderData = new Orderdata(); $orderData->orderID = $order->id; $orderData->productID = $id; $orderData->quntity = $cart['qty']; $orderData->colorID = $cart['color']; $orderData->sizeID = $cart['size']; $orderData->save(); } } } Yii::$app->session->set('cart', []); return $this->redirect(['/members/index']); } public function actionView() { $cart = Yii::$app->session->get('cart'); if(empty($cart)){ $this->goHome(); } Yii::$app->user->returnUrl = Url::to(); return $this->render('view', compact('cart')); } private function loadModel($id) { $model = Products::findOne(['id' => $id, 'confirm' => 1]); if(!$model || !$model->category->confirm) { throw new HttpException(404, 'محصول مورد نظر یافت نشد'); } return $model; }
}