[英]how to use multiple filter in laravel
我想从多个表中过滤数据,所以我编写了这样的查询,还有一件事我让你知道 data1 和 data2 返回具有不同数据的同一列。
$data1 = collect(DB::table('table_1')->get()->toArray());
$data2 = collect(DB::table('table_2')->get()->toArray());
$results = $data1->merge($data2);
if ($request->name!="") {
$results->when(request('name'), function($q){
$q->Where('name', request('name'));
});
}
.
.
.
return $results;
但是$results
返回所有数据而不是过滤数据
尝试这个:
$data1 = collect(DB::table('table_1')->get()->toArray());
$data2 = collect(DB::table('table_2')->get()->toArray());
$results = $data1->merge($data2);
if ($request->name!="") {
$filter_results = $results->when($request->name, function($q){
$q->where('name', $request->name);
});
}
.
.
.
return $filter_results;
尝试这个
$data1 = collect(DB::table('table_1')->get()->toArray());
$data2 = collect(DB::table('table_2')->get()->toArray());
$results = $data1->merge($data2);
$results->when($request->name, function($q) use($request){
$q->where('name', $request->name);
});
return $results;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.