我有一个名为 $all_items 的二维数组(如果我正确计算的话)。它包含几个数组,每个数组对应一个项目类别,每个数组都包含一个项目 - 包含类别、描述等。到目前为止,这是我的代码:
{% 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 %}
的值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:
这是我写作时得到的一部分
`{{所有项目 | yaml_dump }}
但我仍然无法弄清楚要使用哪些索引。老实说,我不知道如何理解这一点。