کلاس اضافه و حذف کردن به شکل زیر بود حالا چطور با این شرایط تغییرش بدم
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;
}
}