我发现了很多类似的问题,但对我来说却没有真正的解决方案。我有一个关于Laravel 5.4的项目
现在,在Controller中,我正在为搜索准备过滤器。
因此,想象一下我想按模型的“位置”和“关于”字段过滤搜索Cv
。
因此,我发现每个这样做的独特价值
$arrOfTags = explode(',', $request['position']);
//separate basic search request(using some js modules that return a request with "," separator.
//Basically, find a Cv where location of "positions" is distinct
$filter0 = Cv::select('location')
->whereIn('position', $arrOfTags)
->groupBy('location')
->get();
$filter1 = Cv::select('about')
->whereIn('position', $arrOfTags)
->groupBy('about')
->get();
现在,我想在名为的对象中概括这2个结果 $filters
然后,在我的Blade中像这样使用它:
@foreach($filters as $filter)
<li> <input type="checkbox" name="location" value="{{$filter->location}}"/> <span> {{$filter->location}} </span> </li>
@endforeach
@foreach($filters as $filter)
<li> <input type="checkbox" name="location" value="{{$filter->about}}"/> <span> {{$filter->about}} </span> </li>
@endforeach
我尝试了对象的array_merge,创建了一个新的空对象并设置了该对象和其他内容的参数,但是没有成功。
在这种情况下,您可以使用unique()
收集方法。获取数据:
$filters = Cv::select('location', 'about')
->whereIn('position', $arrOfTags)
->get();
获取每列的唯一值并使用结果:
@foreach($filters->unique('location') as $filter)
<li> <input type="checkbox" name="location" value="{{ $filter->location }}"/> <span> {{$filter->location}} </span> </li>
@endforeach
@foreach($filters->unique('about') as $filter)
<li> <input type="checkbox" name="about" value="{{ $filter->about }}"/> <span> {{ $filter->about }} </span> </li>
@endforeach
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句