Php 在细枝中渲染多维数组

Php 在细枝中渲染多维数组,php,arrays,symfony,multidimensional-array,twig,Php,Arrays,Symfony,Multidimensional Array,Twig,我通过3个表(“用户”、“客户端”、“帐户”)获取关联对象。“用户”与“客户”具有一对多关系,“客户”与“帐户”具有一对多关系。我使用以下代码获取一个特定“用户”的所有“帐户”: $qb = $this->getDoctrine()->getManager()->createQueryBuilder() ->select('u, c, a') ->from('AcmeUserBundle:User', 'u') ->leftJoin('u.clients',

我通过3个表(“用户”、“客户端”、“帐户”)获取关联对象。“用户”与“客户”具有一对多关系,“客户”与“帐户”具有一对多关系。我使用以下代码获取一个特定“用户”的所有“帐户”:

$qb = $this->getDoctrine()->getManager()->createQueryBuilder()
->select('u, c, a')
->from('AcmeUserBundle:User', 'u')
->leftJoin('u.clients', 'c')
->leftJoin('c.accounts', 'a')
->where('u.id = :id');

$user = $qb->getQuery()
->setParameter('id', $id)
->getOneOrNullResult();

我将$user数组传递给一个细枝模板,但找不到正确的循环来检索“$user”数组中包含的所有帐户。实现这一目标的最佳方式是什么?在控制器中应该做什么,而在细枝中应该做什么?你能给我一个代码的例子吗?我查看了这个答案,但没有应用给定的指导

$user
不是数组,而是单个对象,这可能是您无法在其上循环的原因。你可以试试看

$users = $qb->getQuery()
->getlResults();

$twig->render('template.twig', array('users' => $users));
在template.twig中

{% for user in users %}
{{ dump(user) }}
{% endfor %}
有关转储的更多信息:

然后可能:

{% for user in users %}
<h1>User: {{ user.id }}</h1>
list clients:<br/>
    {% for client in user.clients %}
    <div>
       <h2>Client: {{ client.id }}</h2>
       {{ dump(client) }}
       List accounts:<br/>
       {% for account in user.accounts %}
       <div>
          <h3>Account: {{ account.id }}</h3>
          {{ dump(account) }}
       </div>
       {% endfor %}
    </div>
    {% endfor %}
{% endfor %}
{users%]中的用户的%
用户:{{User.id}
列出客户:
{user.clients%中的客户端为%1} 客户端:{{Client.id} {{dump(client)} 列出帐户:
{user.accounts%中帐户的%s} 帐户:{{Account.id} {{转储(帐户)} {%endfor%} {%endfor%} {%endfor%}
请分享您到目前为止在twig中尝试的内容。我会尝试
{%for user.accounts%}{{account.id}{%endfor%}
accounts
的现有属性替换
id
。twig for循环的工作原理与PHP类似。您可以嵌套它们并在属性的内容中循环。在TWIG中,所有使用“client”或“account”的尝试都会触发错误“消息”variable“client”(或“account”)不存在。我也一直在尝试使用PHP解决方案。但是,getResults()方法不会返回变量数组,而是返回对象数组。因此,我得到错误:当我尝试处理控制器中的$User数组时,无法使用Acme\UserBundle\Entity\User as array“类型的对象。