Symfony 在细枝上保持领先0

Symfony 在细枝上保持领先0,symfony,twig,Symfony,Twig,在我的数据库中,我有一个包含以下数据的字段:000010(类型为整数) 在我的twig tpl中,我想显示它,然后我会:{{spending.documentName} 但浏览器显示“10”。就好像Twig在自动对我的数据进行修剪一样。 我试过{{spending.documentName | raw}},但不起作用。我在Google上找不到任何关于如何用Twig保持领先0的信息 有人知道如何继续吗?您是否尝试使用过滤器 由于占位符遵循sprintf符号,您应该能够转换 sprintf('%06

在我的数据库中,我有一个包含以下数据的字段:000010(类型为整数)

在我的twig tpl中,我想显示它,然后我会:{{spending.documentName}

但浏览器显示“10”。就好像Twig在自动对我的数据进行修剪一样。 我试过{{spending.documentName | raw}},但不起作用。我在Google上找不到任何关于如何用Twig保持领先0的信息

有人知道如何继续吗?

您是否尝试使用过滤器

由于
占位符遵循sprintf符号,您应该能够转换

sprintf('%06d',$integer)


要在twig中
{{'%06d'| format($integer)}

我认为您必须强制使用格式(因为您的类型是integer)

您可以使用格式过滤器:

{{ "%06d"|format(spending.documentName) }}
或者最好创建一个细枝扩展():

在您的模板中更清晰:

{{ spending.documentName | strpad(6,'0') }}

有点晚了,但遇到了同样的情况

使用twig 3.x,您可以使用:

{{your.number | format_number({min_integer_digit:'2'})}}

这是可行的,但它使我的零前导库存完全无用,因为我必须在显示之前重新格式化它。如果我决定更改数据库中前导零的数量,我也必须编辑模板。无论如何,我会坚持下去,现在找不到更好的解决办法。不管怎么说,这个树枝自动修剪真的很奇怪。你在ORM上用过吗(比如条令)?如果是这样的话,我认为是ORM做了修剪,而不是twigI使用原则。在我的数据库中,值以前导零正确保存。你认为条令在水合过程中起到了修剪作用吗?是的,可能;因此,您也可以在doctrine实体的getDocumentName函数中调用str_pad,但我认为这不是最好的解决方案是的,我将属性类型从integer更改为string:)可能不是最好的解决方案,但它可以工作。实际上,这个属性是一个字符串是正确的,因为它代表一个文档名。对于s字符串类型,原则在db插入或删除期间不会修剪前导0。
{{your.number | format_number({min_integer_digit:'2'})}}