1390 Подготовленный оператор содержит слишком много заполнителей, используя Laravel 5.6 Ошибка - PullRequest
0 голосов
/ 24 марта 2019

У меня проблема, когда я получаю список заказов.Это за пределами пункта WHERE IN в Laravel.Как я могу решить эту проблему?

Я использую array_chank, чтобы разделить массив на несколько частей и использовать каждую с разными WHERE IN.

Вот мой код:

 $data = [];
        $total_price_orders = 0;
        $prod_controller = new ProductController();
        $promocode_controller = new CouponController();
        $orderQuery = Order::query();
        $products = new OrderProductController();

if ($request->has('vydavnytstvo')) {
            $publishHousesVal = $request['vydavnytstvo'];
            $publishHousesName = [];
            foreach ($publishHousesVal as $item){
                $house = DB::table('properties')->where('id', $item)->pluck('value')->toArray();
                $publishHousesName[] = $house;
            }

            $productsArray = DB::table('products')->whereIn('publishing_house', $publishHousesName)->pluck('id')->toArray();
            $orders = DB::table('order_product')->whereIn('product_id', $productsArray)->pluck('order_id')->toArray();

           // $orderQuery->whereIn('id', $orders);

            foreach (array_chunk($orders, 1000) as $array){
                $orderQuery->whereIn('id', $array);
            }
...