我尝试用twig/symfony以特定格式显示价格。我想考虑null的情况(没有价格),但是我得到了这个Symfony错误:
“已定义”测试仅适用于简单变量。
下面是我的代码:
<td>{{ _self.formatRemuneration(remunerationValues.variable_monthly_remuneration|number_format(2, ',', ' ') ?? null) }}</td>
如果没有这个?? null
部分,它只在数据库中存在价格时才起作用。我不考虑空的情况。
我还尝试在宏内移动过滤器(|number_format(2, ',', ' ')
),但我得到错误或0.00值,而不是什么都没有。
{% macro formatRemuneration(remuneration) %}
{{ remuneration is not null ? 'profile.remuneration.formated'|trans({'remuneration': remuneration}, 'company_position') : '' }}
{% endmacro %}
你能帮我写这个条件吗?
1条答案
按热度按时间kuarbcqp1#
首先,我不知道为什么你要做一个叫做
formatRemuneration
的东西,并试图同时应用过滤器number_format
。如果我是你,我会把过滤器移到你的宏中,然后你可以在没有设置价格的情况下测试
null
值,并返回你想要的任何值,例如Not applicable
要修复这个错误,你只需要计算变量,而不是整行,见下面。这是因为过滤器
number_format
返回示例Twig\Markup
的对象如果由于某种原因无法移动筛选器
number_format
,则需要将代码段更改为以下代码:请记住,
null
将转换为0.00