我有困难试图为多个Twig过滤器表达式找到正确的语法。
我有一个名为 floatVar 的var,它并不总是被定义。
如果已定义,我想将此浮点数截断为第三位数。 如果没有定义,我想设置一个空字符串。
我无法找到正确的语法:
floatVar|number_format(3, '.','')|default('') // generates a Twig_Error_Runtime exception
floatVar|default('')|number_format(3, '.','') // output "0" in every case
(floatVar|number_format(3, '.',''))|default('') // generates a Twig_Error_Runtime exception
有人能指出我正确的方向吗?有没有办法让paranthesis明确表达优先权? 任何帮助或相关主题的链接将不胜感激。
祝你有个美好的一天。
答案 0 :(得分:1)
试试这个
{{yourelement!= null? yourelement | round(3,' floor'):'' }}
答案 1 :(得分:1)
正确的顺序是:
{{ floatVar|default(0)|number_format(3, '.','') }}
但是,如果未定义floatvar,则会打印0.000。
如果您想在一行中执行此操作,则应考虑创建自定义树枝扩展名:http://symfony.com/doc/current/cookbook/templating/twig_extension.html
编辑: 按照@Pierre Olivier的回答,您应该尝试:
{{ floatVar is defined ? floatVar|number_format(3, '.','') : '' }}
(yourelement != null
如果您没有定义,则会引发错误)