2012-01-25 23 views
12

アルファベット順の検索を実装しています。 名前の表を表示します。私は、対応するアルファベットで始まる名前を持つアルファベットだけを強調したいと思います。Twig:文字列の最初の文字を取得する方法

私は簡単な問題で困惑しています。

twig内の文字列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」のようないくつかの機能はありますか?

答えて

30

小枝1.12.2のでごfirst使用することができます。

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

を古いバージョンのためにあなたがslice使用することができます。

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

注:

また、この表記を使用することができます

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

+0

質問に答えません。 – amphetamachine

+2

彼は文字列の最初の文字を取得する方法を尋ねます。 'user.name [:1]'はそれをエキサイティングします。 – loostro

関連する問題