许多条件如果在树枝上是真的

时间:2014-02-06 00:43:19

标签: symfony twig

我有很多属性布尔类型,所以如果是真,则显示否则显示。 我应该为每个属性做一个“if”条件还是有另一个简短的方法?

2 个答案:

答案 0 :(得分:1)

您可以使用 ternary operator 在树枝中实现更短的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' }}.

<强>输出

  

用户有效

答案 1 :(得分:0)

我会推荐implementing your own Twig Filter

看起来像的东西,

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";
    }

查看relevant partTwig documentation

这可以让你简单地做,

{{ yourVariable.yourBooleanAttribute|booleanToString }} {# which shows "Yes" or "No" #}

<强>更新

对于这个特殊需求,我会建议nifr的建议。但是我会保留这个答案,因为如果您想在模板中应用其他特定逻辑,这可能有所帮助。