Уникальная / отличная в ларавелле foreach

В 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

Каков наилучший способ объявить различные или уникальные значения в рамках foreach, подобного этому, в laravel?

2

Решение

Предполагая, что это коллекции, вы можете сделать:

@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
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector