我遇到了 array_key_exists 问题。我需要检查购物车中是否已存在产品。我这样做:.$session = $this->request->getSession(); $cart = $session->read( 'cart' ); if (array_key_exists($order->product_id, (array) $cart)) { $this->Flash->error('Invalid request'); } else { $cart[] = $order; $session->write('cart', $cart ); $this->Flash->success($order->product->name_product . ' has been added to the shopping cart'); return $this->redirect( ['action' => 'index'] ); } return $this->redirect($this->referer()); } else { return $this->redirect(['action' => 'index']); }..我收到以下错误,但现在更新后它不再存在。但该功能仍然对我没有帮助。array_key_exists() expects parameter 2 to be array, int given即使产品已添加,也会将其添加到购物车。我需要将所选产品 ID 与购物车中已有的产品 ID 进行比较。订单信息基本上是:id、数量、user_id、product_id。如果有人可以分析某种方法来检查已安装数组中的 id,我将不胜感激。
1 回答
达令说
TA贡献1821条经验 获得超6个赞
当你这样做时:
$cart[] = $order;
您要求 PHP 将一个新元素添加到数组末尾$cart
,并为其提供下一个可用的数字键。然后,您尝试查看产品 ID 是否作为数组中的键存在。除非您的产品 ID 类似于 0 和 1,否则这种情况不太可能发生。如果您希望购物车通过产品 ID 进行键入,请使用
$cart[$order->product_id] = $order;
- 1 回答
- 0 关注
- 194 浏览
添加回答
举报
0/150
提交
取消