Получить объект с переменной

У меня в базе данных и в одной сущности два свойства:

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

Решение

Попробуйте использовать Функция атрибута ветки как это :

{{ attribute(entity, "title_" ~ type) }}
4

Другие решения

Просто добавьте вспомогательный метод к объекту, что-то вроде getMyType(), Это вернет правильный тип. В шаблоне Twig вы можете получить доступ к этому методу:

{% set type == myEntity.getMyType() %}

Обратите внимание, что вы должны внедрить сущность в шаблон вашего контроллера:

$Response = $this->render(
"MySomethingBundle:Area:page.html.twig",
array('myEntity' => $entityInstance));

Кстати, вы можете посмотреть на различные стратегии картирования наследования.

0

По вопросам рекламы [email protected]