in_array() 期望参数 2 是响应中的数组以及如何在 return 响应中搜索值

in_array() expects parameter 2 to be array on response and how to search value on return response

有两件事需要完成

1).当我第一次在会话数组上添加 ID 时,它 return 是一个错误

"message": "in_array() expects parameter 2 to be array, null given"

2).在 return 响应中,我如何找到该值是否在数组中。

这是我的函数

 function addInquiry(id) {
    var activity_id = id;
    if(activity_id)
      {
       $.ajax({
       type:"GET",
       url:"{{ route('addInquiryData') }}?activity_id="+activity_id,
       success:function(res)
         {      
          if(res)
            {
              console.log(res); 
                 /* response on res
                 Activity : Array(3)
                 0 : "1"
                 1 : "2"
                 2 : "3"
                 length : 3 */
            }
         }
        });
      }
     }

在我的控制器上定义一个函数以在会话中设置。

public function addInquiry(Request $request) {

        $cart = Session::get('cart');
        if(in_array($request->activity_id, $cart)){
            $element = array_search($request->activity_id, $cart);
            unset($cart[$element]);
            Session::put("cart", $cart);
        } else {
            Session::push('cart', $request->activity_id);
        }

    return response()->json(["Activity" => Session::get('cart')]);
}

您的购物车对象是 nullSession::get('cart') returns 什么都没有)。所以请检查一下。

尝试:

if( $cart && in_array($request->activity_id, $cart )) {