in_array()期望参数2在响应时是数组,以及如何在返回响应上搜索值

时间:2018-02-09 10:31:47

标签: php ajax laravel laravel-5.5

需要做两件事

1)。当我第一次在会话数组上添加ID时,它会返回错误

  

“message”:“in_array()期望参数2为数组,给定”

为null

2)。在返回响应时,我如何才能找到该值是否在数组中。

这是我的功能

 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')]);
}

1 个答案:

答案 0 :(得分:4)

您的购物车对象为nullSession::get('cart')不返回任何内容)。所以请检查一下。

<强>尝试:

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