web-dev-qa-db-ja.com

小枝:文字列の最初の文字を取得する方法

アルファベット順の検索を実装しています。名前の表を表示します。対応するアルファベットで始まる名前を持つアルファベットのみを強調表示したいと思います。

私は単純な問題に困惑しています。

小枝内の文字列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」のような関数はありますか?

18
Amit

twig 1.12.2なので、 first を使用できます:

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

古いバージョンの場合は、 slice を使用できます。

{% if user.name|slice(0, 1)|lower == i %}
38
meze

注:次の表記も使用できます:

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

6
ioleo