2

我的 Symfony2 项目中有一个树枝模板。在树枝模板中,我有一个实体对象。此实体对象通过 oneToMany 关系链接到另一个实体。

例子:

{{ submission }} -> Submission entity
{{ submission.histories }} -> Histories entity -> I have here an array collection of histories

实体历史有一个字段“state_to”

我的目标是只获取 state_to 为 4 的历史记录对象

我试过这样:

{{ submission.histories('status_to', 4)[0] }}

但这不起作用。

我知道我可以使用:

{% for history in submission.histories %}
    {% if history.statusTo == 4 %}
        {{ history.statusDate|date("d F Y") }}
    {% endif %}
{% endfor %}

但我非常确定有更好的方法。

4

2 回答 2

6

在您的实体中添加一个方法getHistoryByStatus($status)以根据该status_to字段过滤您的历史记录,然后在您的模板中:

{% set filtered_history = submission.historyByStatus(4)|default(false) %}
{% if filtered_history %}
    {{ filtered_history.statusDate|date("d F Y") }}
{% endif %}
于 2013-10-29T13:46:01.960 回答
2

您可以在控制器中调用的方法中找到 state_to 为 4 的历史记录对象。然后将其传递给视图。此方法可以在您的控制器中,但最好将它放在您的历史存储库中?或经理..

尽量避免视图的复杂性。

于 2013-10-29T13:44:55.690 回答