2012-01-25 136 views
12

我正在實施字母搜索。 我們顯示一個名稱表。我只想突出顯示名稱以相應字母開頭的字母。樹枝:如何獲得字符串中的第一個字符

我難住了一個簡單的問題。

如何在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