如何在Twig中选择First String

时间:2014-09-03 12:08:07

标签: symfony twig

我需要的是什么:

  • 我只需要字符串中的名字。

       Like String : Bodo Jorg Udo .. ( i have .. notation if string of length is more then 20).
    

    这是源代码

            {%if item.metadata.name |length < 20 %}
            {{item.metadata.name}}
            {%else%}{{WordLimit(item.metadata.name,10,10)}} ..
               {%endif%}
    

    输出应该像

     Bodo
    

2 个答案:

答案 0 :(得分:2)

您可以使用Twig的Split过滤器来匹配空白字符。它将返回一个包含分割字符串的数组。

New in version 1.10.3: The split filter was added in Twig 1.10.3.
The split filter splits a string by the given delimiter and returns a list of strings:

{% set foo = "one,two,three"|split(',') %}
{# foo contains ['one', 'two', 'three'] #}

在您的情况下,您需要用空格| split(' ')

替换逗号

Twig文档Split page中的更多信息。

答案 1 :(得分:0)

我认为您正在寻找文本扩展中的截断过滤器。 http://twig.sensiolabs.org/doc/extensions/text.html

您可以通过添加如下服务定义来配置它:

services:
 twig.extension.text:
     class: Twig_Extensions_Extension_Text
     tags:
         - { name: twig.extension }

然后您可以应用过滤器:

 {{ item.metadata.name|truncate(10) }}

过滤器有一些参数,对你来说重要的是分隔符值(默认情况下它是“......”,如果字符串有10个以上的字符,那就是你想要的值)