Twig: Как получить первый символ в строке - PullRequest
18 голосов
/ 25 января 2012

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

Я озадачен простой проблемой.

Как прочитать первый символ в строке 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 %}

Есть ли в ветке какая-то функция, такая как "sets_with"?

Ответы [ 2 ]

37 голосов
/ 25 января 2012

Начиная с ветки 1.12.2, вы можете использовать first:

{% if user.name|first|lower == i %}

Для более старой версии вы можете использовать slice:

{% if user.name|slice(0, 1)|lower == i %}
6 голосов
/ 21 августа 2014

Примечание: Вы также можете использовать это обозначение:

{% if user.name[:1]|lower == i %}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...