2

Symfony2 プロジェクトに twig テンプレートがあります。小枝テンプレートには、エンティティ オブジェクトがあります。このエンティティ オブジェクトは、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 である history オブジェクトを見つけることができます。それをビューに渡します。このメソッドはコントローラー内に置くことができますが、おそらく履歴リポジトリに置く方がよいでしょうか? それとも管理人..

ビューの複雑さを避けるようにしてください。

于 2013-10-29T13:44:55.690 に答える