我找到了删除结果中重复值的方法,但是它无法正常工作。如何解决?
我有下一个代码:
public function getListPositionByApplication($app_id){
// $app_id = \Request::input('app_id');
$list = SparePartApplicationPositionProvider::where('app_id',$app_id)->with(['provider','application_position'])->orderBy('apos_id')
->get();
$aa=0;
foreach ($list as $value) {
if($value->apos_id==$aa){
$value->application_position->name_detail='----';
}
$aa = $value->apos_id;
Log::info($value->apos_id);
}
return $list;
}
Log :: info提供下一个信息:26,26,26,26,26,26,27,27,27,27,27,27,28 但是$ value-> application_position-> name_detail在所有情况下都带有'----',最后一个值除外
答案 0 :(得分:1)
@侯赛因是对的,请按共同的专栏分组,不要做一个foreach。让Eloquent DB做繁重的工作。请注意您在其中包含第二个表的回调。
$list = SparePartApplicationPositionProvider::where('app_id',$app_id)
->with(['provider','application_position' => function ($query){
$query->groupBy('name_detail');
}])
->orderBy('apos_id')
->get();
答案 1 :(得分:1)
您可以尝试收集unique()方法。