在你不打电话之前
get()
在查询上,它仍然是一个查询对象,可以进一步转换。您不必将整个查询写在一块中。因此,您应该能够执行以下操作:
public function index(\Illuminate\Http\Request $request) {
$query = DB::table('tlt_products');
if ($request->has('product_group')) {
$query = $query->where('product_group', $request->get('product_group'));
}
$products = $query->get();
return response()->json([
'categories'=> $tlt_product_groups,
'products' =>$tlt_products,
]);
}
如果要扩展筛选,还可以允许对多个列进行筛选,而无需再次为每个新列编写代码:
public function index(\Illuminate\Http\Request $request) {
$filterColumns = ['product_group', 'price', 'manufaturer'];
$query = DB::table('tlt_products');
foreach ($filterColumns as $column) {
if ($request->has($column)) {
$query = $query->where('product_group', $request->get($column));
}
}
$products = $query->get();
return response()->json([
'categories'=> $tlt_product_groups,
'products' =>$tlt_products,
]);
}