Symfony 如果在细枝中为真,则有许多条件
我有许多布尔类型的属性,因此如果为真,则显示是否则显示否。 我应该为每个属性设置一个条件“if”还是有其他简短的方法?您可以使用在twig中实现较短的Symfony 如果在细枝中为真,则有许多条件,symfony,twig,Symfony,Twig,我有许多布尔类型的属性,因此如果为真,则显示是否则显示否。 我应该为每个属性设置一个条件“if”还是有其他简短的方法?您可以使用在twig中实现较短的if-语法 示例: # I'm creating an example array here {% set user = { 'active' : true } %} # Now, instead of ... User is {% if user.active %}active{% else %}inactive{% endif %}.
if
-语法
示例:
# I'm creating an example array here
{% set user = { 'active' : true } %}
# Now, instead of ...
User is {% if user.active %}active{% else %}inactive{% endif %}.
# ... you can write:
User is {{ user.active ? 'active' : 'inactive' }}.
输出:
# I'm creating an example array here
{% set user = { 'active' : true } %}
# Now, instead of ...
User is {% if user.active %}active{% else %}inactive{% endif %}.
# ... you can write:
User is {{ user.active ? 'active' : 'inactive' }}.
用户处于活动状态
我建议,
看起来像
class YourProjectTwigExtension extends Twig_Extension
{
public function getFilters()
{
return array(
new Twig_SimpleFilter('booleanToString', array($this, 'booleanToString')),
);
}
public function booleanToString($value)
{
if (!$value) {
return "No";
}
return "Yes";
}
看一看,
{{ yourVariable.yourBooleanAttribute|booleanToString }} {# which shows "Yes" or "No" #}
更新:
对于这一特殊需求,我建议nifr提出建议。但我会保留这个答案,因为它可能有助于您在模板中应用其他特定逻辑。在这种情况下,是否可以使用twig扩展来执行服务?Hm不是创建twig扩展-编写类,将其注册为服务,使用twig.extension标记它,并对其进行进一步测试。。。这么简单的操作有点过分吗?细枝宏。。。也许:)如果你需要不同的输出。。。比如是/否,主动/非主动,酷/不酷?我认为在这种情况下不值得这么做。我一直在开发真正需要扩展细枝的应用程序。“编写一个类,将其注册为服务,用twig.extension标记它”只需完成一次,然后允许您管理所需的所有过滤器/函数。所以,我同意你的观点,只是为了满足这个特殊的需要而扩展树枝(上面的问题)。但是,比方说,您已经扩展了细枝,添加适当的过滤器并不是那么乏味。