为了账号安全,请及时绑定邮箱和手机立即绑定

array_key_exists() 期望参数 2 为数组,给定 null - Cakephp 3

array_key_exists() 期望参数 2 为数组,给定 null - Cakephp 3

PHP
呼啦一阵风 2023-07-15 17:38:30
我遇到了 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;


查看完整回答
反对 回复 2023-07-15
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信