symfony - Twig的属性函数: formatting numbers

标签 symfony twig

在 Symfony2 应用程序中,我使用 Twig 的 attribute以通用方式显示产品属性的函数:我有一个属性名称数组,并循环显示属性:

{% for property in arrayProperties %}
    {{ attribute(entity, property)|trans }}
{% endfor %}

这些属性可以是文字或数字,例如:

  • 描述:文字
  • number_of_X:整数
  • size_of_Y: float (比例=2)
  • size_of_Z: float (比例=5)

问题是 float 属性以这种方式显示:

size_of_Y : 0.42

size_of_Z : 0.84848

虽然我想显示带有逗号分隔符,但这样:

size_of_Y : 0,42

size_of_Z : 0,84848

我似乎无法使用 number_format函数紧接在属性函数之后,因为它将转换 0 中的我的 litteral 值的,即使我可以找到一种方法来测试显示的值是数字还是文字值( is_numeric ish 函数),我也无法确定属性的规模(后面有多少个数字)我应该显示的逗号,它是 number_format ) 的第一个参数。

是否有通用方法来更改 Twig 显示这些属性的方式?

在我的 Twig 的配置(config.yml)中,我已经有了:

number_format:
    decimals: 0
    decimal_point: ','
    thousands_separator: ' '

这似乎适用于应用程序的其余部分,我不使用 attribute显示属性的函数。

谢谢!

最佳答案

您需要编写自己的 Twig 扩展来处理此问题:

Twig Extensions

关于symfony - Twig的属性函数: formatting numbers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33102918/

相关文章:

php - 提交后取消设置 Symfony 表单中的字段

php - Symfony 访问控制与路由内部变量

twig - 嫩枝: Unset element from array

php - Symfony2 : form_widget call in twig throws exception "Catchable fatal error ... must be an instance of Symfony\Component\Form\FormView"

node.js - for 循环计数器与 Twig 或 Swig

php - 错误 : "An exception has been thrown during the rendering of a template"

php - Assets 加载未找到图像 - symfony2

php - Docker-Symfony 项目上的 Web 服务器无法启动

html - 垂直放置表格内容

php - Silex-Twig_Error_Syntax : The function "path" does not exist