2016-12-20 10 views
2

У меня есть поле под названием Industry, где люди будут входить в свою отрасль. например Сельское хозяйство, производство, ИТ, ландшафтный дизайн и т. Д.Показать список результатов минус дубликаты в Liquid

Я хотел бы выводить эти данные, используя жидкость, однако я хочу поместить его в форму поиска веб-приложения в раскрывающемся меню, чтобы пользователи могли искать конкретное поле. Поэтому я бы не хотел добавлять какие-либо элементы, которые являются дубликатами.

E.g. записи от пользователей включают: сельское хозяйство, производство, сельское хозяйство, информационные технологии, ландшафтный дизайн, сельское хозяйство - вы можете видеть, что сельское хозяйство используется 3 раза. Если я использую ниже него будет перечислен в 3 раза:

<select> 
{module_webapps id="12345" collection="industry" filter="all" template=""} 
{% for item in industry.items %} 
    <option value="{{item.industry}}">{{item.industry}}</option> 
{% endfor %} 
</select> 

Как использовать цикл или массив для отображения только промышленностей раз и скрыть все остальные дубликаты?

Благодаря

ответ

0

Вы можете capture строку всех элементов. Затем используйте строковый фильтр split, чтобы преобразовать его в массив на основе разделителя. Затем используйте фильтр массива uniq, чтобы удалить все дубликаты. Наконец, итерации результирующего массива, чтобы создать выпадающее меню.

<select> 
{module_webapps id="12345" collection="industry" filter="all" template=""} 

{% capture items %} 
{% for item in industry.items %} 
{{item.industry}}, 
{% endfor %} 
{% endcapture %} 

{% for item in items | split: ',' | uniq %} 
    <option value="{{item}}">{{item}}</option> 
{% endfor %} 
</select> 
+0

Я не думаю, что uniq работает в бизнес-катализаторе. – Daut