我有很多属性布尔类型,所以如果是真,则显示是否则显示否。 我应该为每个属性做一个“if”条件还是有另一个简短的方法?
答案 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 part的Twig documentation,
这可以让你简单地做,
{{ yourVariable.yourBooleanAttribute|booleanToString }} {# which shows "Yes" or "No" #}
<强>更新强>
对于这个特殊需求,我会建议nifr的建议。但是我会保留这个答案,因为如果您想在模板中应用其他特定逻辑,这可能有所帮助。