繁体   English   中英

如何在 laravel 中使用多个过滤器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM