我在数据库和一个实体中有两个属性:
title_one
title_two
在模板(TWIG)中,我想从这些领域中只获得一个。
{% set type = 'two' %}
我可以:
<div id="title">
{% if type == 'one' %}
{% entity.title_one %}
{% elseif type == 'two' %}
{% entity.title_two %}
{% endif %}
</div>
效果很好,但我想做这样的事情:
<div id="title">
{{ entity.title_{{ type }} }}
</div>
我该怎么做?
答案 0 :(得分:4)
尝试使用Twig attribute function,如下所示:
{{ attribute(entity, "title_" ~ type) }}
答案 1 :(得分:0)
只需向实体添加辅助方法,例如getMyType()
。这将返回正确的类型。在Twig模板中,您可以访问此方法:
{% set type == myEntity.getMyType() %}
请注意,您必须将实体注入控制器的模板中:
$Response = $this->render(
"MySomethingBundle:Area:page.html.twig",
array('myEntity' => $entityInstance));
顺便说一句,你可能想看看different strategies of inheritance mapping。