1

$all_items という名前の 2 次元配列 (正確に数えた場合) があります。これには、項目のカテゴリごとに 1 つの複数の配列が含まれており、この配列のそれぞれに項目 (カテゴリ、説明など) が含まれています。これまでの私のコードは次のとおりです。

    {% for all_i in all_items %}
        <table class="table table-condensed">
        {% for i in all_i %}
            <tr>
                <td>{{ loop.index }}. </td>
                <td>{{ i.description }}</td>
                <td>{{ i.price }}</td>
            </tr>
        {% endfor %}
        </table>
    {% endfor %}

私が欲しいのは、各カテゴリの名前と、このカテゴリのアイテムを表示することです。しか呼び出すことができ{{ i.category }}ませんが、一度だけではなく、アイテムごとに表示されます。

以下にそのようなことを行う方法があるかどうか、またこれに適した構文は何かと思っていました。

    {% for all_i in all_items %}
        <table class="table table-condensed">
        {{ all_i[i].category }}
        {% for i in all_i %}
            <tr>
                <td>{{ loop.index }}. </td>
                <td>{{ i.description }}</td>
                <td>{{ i.price }}</td>
            </tr>
        {% endfor %}
        i++;
        </table>
    {% endfor %}

の値はController から取得iされるように設定さ0れ、テンプレートに渡されます。

私が得るエラーはKey "0" for array with keys "" does not exist

この行はコントローラーで正常に機能します。

$i = $all_items[0][0]->getCategory();

これを修正するのを手伝ってもらえますか?


アップデート

%array% [[!!php/object:O:29:"EM\ExpensesBundle\Entity\Item":7:{s:5:"*id";i:8;s:14:"*description";s:8:"Вода";s:8:"*price";s:4:"5.00";s:7:"*date";O:8:"DateTime":3:{s:4:"date";s:19:"2007-01-01 00:00:00";s:13:"timezone_type";i:3;s:8:"timezone";s:13:"Europe/Berlin";}s:8:"*notes";N;s:11:"*category";O:48:"Proxies\__CG__\EM\ExpensesBundle\Entity\Category":4:{s:17:"__isInitialized__";b:1;s:5:"*id";i:1;s:7:"*name";s:28:"Храна и напитки";s:8:"*items";O:33:"Doctrine\ORM\PersistentCollection":2:{s:39:"Doctrine\ORM\PersistentCollectioncoll";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:54:"Doctrine\Common\Collections\ArrayCollection_elements";a:0:{}}s:46:"Doctrine\ORM\PersistentCollectioninitialized";b:0;}}s:8:"*month";O:45:"Proxies\__CG__\EM\ExpensesBundle\Entity\Month":7:{s:17:"__isInitialized__";b:0;s:5:"*id";N;s:7:"*name";N;s:9:"*budget";N;s:8:"*notes";N;s:10:"*spended";N;s:8:"*saved";N;}}, !!php/object:O:29:"EM\ExpensesBundle\Entity\Item":7:{s:5:"*id";i:9;s:14:"*description";s:14:

これは私が書いたときに得られるものの一部です

`{{all_items | yaml_dump }}

しかし、どのインデックスを使用すればよいかまだわかりません。正直なところ、私はこれを理解する方法がわかりません。

4

1 に答える 1

1

all_i 配列内のすべてのアイテムが同じカテゴリを持っていると仮定していますか? その場合、配列が名前付きのキー値配列ではない場合、以下のようなことを実行して、サブ配列から最初のカテゴリ名を取得できます。

{% for all_i in all_items %}
    {% if all_i|length > 0 %}
        <h3>{{ all_i[0].category }}</h3>
        <table class="table table-condensed">
            {% for i in all_i %}
                <tr>
                    <td>{{ loop.index }}. </td>
                    <td>{{ i.description }}</td>
                    <td>{{ i.price }}</td>
                </tr>
            {% endfor %}
        </table>
    {% endif %}
{% endfor %}
于 2013-01-15T13:36:38.163 に答える