Я взрываю какой-то идентификатор, он работает, когда массив имеет хотя бы 1 значение. если массив равен нулю, функция implode возвращает ошибку как implode(): переданы недопустимые аргументы
$arr=implode(',', $request->id);
$product= DB::table('sub_categories')
->join('categories','sub_categories.category_id','=','categories.category_id')
->join('products','sub_categories.subcategory_id','=','products.subcategory_id')
->join('colors','colors.color_id','=','products.product_color')
->select('products.*','categories.category_name','sub_categories.subcategory_name','colors.*')
->whereRaw('color_id IN ('.$arr.')')
->where(strtolower('sub_categories.subcategory_slug'),$request->subcategory_id)
->orderBy('products.product_name','ASC')
->get();
Попробуйте использовать значение по умолчанию для учета сценария, когда $request->id имеет значение null
$arr = implode(',', $request->input('id', []));
Может сделать whereIn условно в запросе
```php
$arr=implode(',', $request->input('id', []));
$query= DB::table('sub_categories')
->join('categories','sub_categories.category_id','=','categories.category_id')
->join('products','sub_categories.subcategory_id','=','products.subcategory_id')
->join('colors','colors.color_id','=','products.product_color')
->select('products.*','categories.category_name','sub_categories.subcategory_name','colors.*')
->where(strtolower('sub_categories.subcategory_slug'),$request->subcategory_id);
if (!empty($arr)) {
$query->whereRaw('color_id IN ('.$arr.')');
}
$product = $query->orderBy('products.product_name','ASC')->get();
@seemapatil Обновил ответ, чтобы включить ваш запрос, дайте мне знать, работает ли он для вас
Если данные не являются массивом, функция implode()
выдаст предупреждение об ошибке.
Чтобы избавиться от ошибки, вы можете проверить массив методом is_array():
if (is_array($request->id)){
$arr = implode(',', $request->id);
} else {
$arr = NULL;
}
Если $request->input('id') возвращает null, тогда $arr будет пустой строкой, поэтому, если вы используете whereIn в запросе, то, естественно, это даст ошибку. У вас также должны быть некоторые значения по умолчанию для запроса, иначе всякий раз, когда $request->input('id') имеет значение null, запрос выдаст ошибку. Или у вас может быть условие в запросе. Если вы можете опубликовать код запроса, может быть, я могу предложить