public function updateItem($id, $quantity) { if ($this->status == self::CART_PENDING) { if (($cart_item = CartItems::findOne(['cart_id' => $this->id, 'ticket_id' => $id])) === null) { return; } $cart_item->quantity = $quantity; $cart_item->save(); $this->updateCart(); if ($cart_item->quantity == 0) { $this->removeItem($id); } } }