在laravel中,我有一个带有一些值的下拉选择框,但是我的foreach循环框显示$psku->frame_desc
的每个实例,应该如此。但是,我希望它只显示不同的值。
以下是代码:
<select style="margin-top:10px; max-width:200px;" >
<option value="" selected data-default>Sort by type:
</option>
@foreach ($orderFormData->pgroups as $pgroup)
@foreach ($pgroup->pskus as $psku)
<option value="{{ $psku->frame_desc }}">{{ $psku->frame_desc }}</option>
@endforeach
@endforeach
在laravel中像foree这样在foreach中声明不同或唯一值的最佳方法是什么?
答案 0 :(得分:3)
假设这些是集合,您可以这样做:
@foreach ($orderFormData->pgroups as $pgroup)
@foreach ($pgroup->pskus->unique('frame_desc') as $psku)
<option value="{{ $psku->frame_desc }}">{{ $psku->frame_desc }}</option>
@endforeach
@endforeach
如果它们不是集合,您可以将它们设为集合:
@foreach ($orderFormData->pgroups as $pgroup)
@foreach (collect($pgroup->pskus)->unique('frame_desc') as $psku)
<option value="{{ $psku->frame_desc }}">{{ $psku->frame_desc }}</option>
@endforeach
@endforeach