Ответ 1
Начиная с ветки 1.12.2 вы можете использовать first
:
{% if user.name|first|lower == i %}
Для более старой версии вы можете использовать slice
:
{% if user.name|slice(0, 1)|lower == i %}
Я выполняю алфавитный поиск. Мы показываем таблицу имен. Я хочу выделить только те алфавиты, имена которых начинаются с соответствующего алфавита.
Я столкнулся с простой проблемой.
Как прочитать первый символ в строке user.name внутри ветки. Я пробовал несколько стратегий, в том числе операцию [0], но она выдает исключение. Вот код
{% for i in ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0-9'] %}
{% set has_user_starting_with_alphabet = false %}
{% for user in pagination %}
{% if user.name[0]|lower == i %}
{% set has_user_starting_with_alphabet = true %}
{% endif %}
{% endfor %}
{% if has_user_starting_with_alphabet %}
<li><a href="{{ path(app.request.get('_route'), { 'search_key' : i}) }}"><span>{{ i }}</span></a></li>
{% endif %}
{% endfor %}
Есть ли какая-нибудь функция типа "starts_with" в twig?
Начиная с ветки 1.12.2 вы можете использовать first
:
{% if user.name|first|lower == i %}
Для более старой версии вы можете использовать slice
:
{% if user.name|slice(0, 1)|lower == i %}
Примечание: Вы также можете использовать это обозначение:
{% if user.name[:1]|lower == i %}