u
u
过滤器将文本包装在 Unicode 对象(Symfony UnicodeString 实例)中,该对象公开了“操作”字符串的方法。
让我们看一些常见的用例。
将文本包装到给定的字符数
1 2 3 4 5 6
{{ 'Symfony String + Twig = <3'|u.wordwrap(5) }}
Symfony
String
+
Twig
= <3
在这里,u
是过滤器,wordwrap(5)
是在过滤器结果上调用的方法;它等效于 (text|u).wordwrap(5)
。
截断字符串
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...
将字符串转换为 snake case 或 camelCase
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
注意
u
过滤器是 StringExtension
的一部分,默认情况下未安装。首先安装它
1
$ composer require twig/string-extra
然后,在 Symfony 项目中,安装 twig/extra-bundle
1
$ composer require twig/extra-bundle
否则,在 Twig 环境中显式添加扩展
1 2 3 4
use Twig\Extra\String\StringExtension;
$twig = new \Twig\Environment(...);
$twig->addExtension(new StringExtension());