我是内爆一些id,它工作时,数组有至少一个值。如果数组为null,则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();发布于 2020-12-11 11:56:22
尝试使用默认值来说明$request->id为null时的场景。
$arr = implode(',', $request->input('id', []));可以在查询中有条件地执行whereIn。
```php$arr=implode(',',$request->输入(‘id’,[]));
$query= DB::表(‘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);如果(!空($arr)){
$query->whereRaw('color_id IN ('.$arr.')');}
$product = $query->orderBy('products.product_name','ASC')->get();
发布于 2020-12-11 12:05:47
如果给定的数据不是数组,则implode()函数将引发警告错误。要消除错误,可以使用是方法检查数组:
if(is_array($request->id)){
$arr = implode(',', $request->id);
} else {
$arr = NULL;
}https://stackoverflow.com/questions/65250869
复制相似问题