u

这个 u 过滤器将文本包装在Unicode对象(a Symfony UnicodeString instance )它公开“操纵”字符串的方法。

让我们看看一些常见的用例。

将文本换行为给定字符数:

1
2
3
4
5
6
{{ 'Symfony String + Twig = <3'|u.wordwrap(5) }}
Symfony
String
+
Twig
= <3

截断字符串:

1
2
3
4
5
{{ 'Lorem ipsum'|u.truncate(8) }}
Lorem ip

{{ 'Lorem ipsum'|u.truncate(8, '...') }}
Lorem...

这个 truncate 方法还接受第三个参数以保留整个单词:

1
2
{{ 'Lorem ipsum dolor'|u.truncate(10, '...', false) }}
Lorem ipsum...

将字符串转换为 案例或 骆驼壳

1
2
3
4
5
{{ 'SymfonyStringWithTwig'|u.snake }}
symfony_string_with_twig

{{ 'symfony_string with twig'|u.camel.title }}
SymfonyStringWithTwig

也可以链接方法:

1
2
3
4
5
6
{{ 'Symfony String + Twig = <3'|u.wordwrap(5).upper }}
SYMFONY
STRING
+
TWIG
= <3

对于大型字符串操作,请使用 apply 标签:

1
2
3
{% apply u.wordwrap(5) %}
    Some large amount of text...
{% endapply %}

注解

这个 u 过滤器是 StringExtension 默认情况下不安装。先安装:

1
$ composer require twig/string-extra

然后,在symfony项目上,安装 twig/extra-bundle

1
$ composer require twig/extra-bundle

否则,请在Twig环境中显式添加扩展::

use Twig\Extra\String\StringExtension;

$twig = new \Twig\Environment(...);
$twig->addExtension(new StringExtension());