Php 在细枝中渲染多维数组
我通过3个表(“用户”、“客户端”、“帐户”)获取关联对象。“用户”与“客户”具有一对多关系,“客户”与“帐户”具有一对多关系。我使用以下代码获取一个特定“用户”的所有“帐户”: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',
$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“类型的对象。