Php 如何从返回三维数组并在symfony 3中的细枝视图上设置值的查询中获取数据
我正在与symfony3合作一个项目,我是这个框架的初学者 这是我的问题 我在数据库中有一个名为groupe的表,其中有一个名为member的列,我在其中存储了该组中成员的id 在第一步中,我想从groupe表中获取这些id,然后分解它们,将查询发送到我的数据库,以获取与发送的id对应的nom、prenoman和profile pic 因此,我在我的存储库中做了两个动作 这是我在存储库中的第一个操作,它允许我从数据库的membre表中获取id字符串Php 如何从返回三维数组并在symfony 3中的细枝视图上设置值的查询中获取数据,php,mysql,symfony,Php,Mysql,Symfony,我正在与symfony3合作一个项目,我是这个框架的初学者 这是我的问题 我在数据库中有一个名为groupe的表,其中有一个名为member的列,我在其中存储了该组中成员的id 在第一步中,我想从groupe表中获取这些id,然后分解它们,将查询发送到我的数据库,以获取与发送的id对应的nom、prenoman和profile pic 因此,我在我的存储库中做了两个动作 这是我在存储库中的第一个操作,它允许我从数据库的membre表中获取id字符串 public function ge
public function getmemberstring($id){
$membres = $this->getEntityManager()
->createQuery('SELECT g.membres FROM GroupGroupBundle:Groupe g
WHERE g.id =:id')
->setParameter('id',$id);
return $membres->getResult();
}
这是我的存储库中的second函数,它允许我从前面的字符串中提取id,并向数据库发送请求以获取我想要的信息
public function getmemberlist($list){
$memberId = explode('-',$list);
$membres = array();
foreach($memberId as $value){
$nom = $this->getEntityManager()
->createQuery('SELECT m.nom FROM MainBundle:Member m
WHERE m.id =:id')
->setParameter('id',$value);
$nom = $nom->getResult();
$prenom = $this->getEntityManager()
->createQuery('SELECT m.prenom FROM MainBundle:Member m
WHERE m.id =:id')
->setParameter('id',$value);
$prenom = $prenom->getResult();
$pic = $this->getEntityManager()
->createQuery('SELECT m.profile_pic FROM MainBundle:Member m
WHERE m.id =:id')
->setParameter('id',$value);
$pic = $pic->getResult();
array_push($membres,$nom,$prenom,$pic);
}
return $membres;
}
这是我的控制器
public function membreGroupeAction()
{
$em = $this->getDoctrine()->getManager();
$str = $em->getRepository("GroupGroupBundle:Groupe")->findOneBy(array('id'=>1));
$member = $em->getRepository("GroupGroupBundle:Groupe")->getmemberlist($str->getMembres());
return $this->render('@GroupGroup/layout/membres.html.twig',array("mem"=>$member));
}
这是我的小枝视图,当我想显示控制器发送的信息时
{% extends '@GroupGroup/Group/groupe_mur_base.html.twig' %}
{% block panel %}
{% for i in mem %}
{% for j in i %}
{% for t in j %}
{{ t }}
{% endfor %}
{% endfor %}
{% endfor %}
<div class="jumbotron list-content" style="display: block;">
<ul class="list-group">
<li href="#" class="list-group-item title">
Liste des Membres
</li>
<li href="#" class="list-group-item text-left" id="listmembre" style="display: block;">
<div class="image">
<img class="img-thumbnail" src="http://bootdey.com/img/Content/User_for_snippets.png">
<span id="membername">Juan guillermo cuadrado</span>
<div><button id="btnajout" class="btn btn-primary">Ajouter</button></div>
</div>
<div class="break"></div>
</li>
{%extends'@GroupGroup/Group/groupe\u mur\u base.html.twig%}
{%block panel%}
{mem%中的i的%s}
{i%中j的%i}
{j%中t的%s}
{{t}
{%endfor%}
{%endfor%}
{%endfor%}
-
记忆之旅
-
胡安·吉列尔莫·卡德拉多
阿约特
这就是我的数据在我的模板中的显示方式。我想设置它们的样式,并为每个用户只获取3个项目,在li列表中分开,就像下面的模板一样。您可以在一个查询中完成所有操作
public function getmemberlist($list){
$memberId = explode('-',$list);
$membres = $this->getEntityManager()
->createQuery(
'SELECT m.nom, m.prenom, m.profile_pic
FROM MainBundle:Member m
WHERE m.id IN(:id)'
)
->setParameter('id',array_values($memberId))
->getResult()
;
return $membres;
}
或者在存储库中更好
public function getmemberlist($list){
$memberId = explode('-',$list);
$membres = $this->createQueryBuilder('m')
->where('m.id IN(:id)')
->setParameter('id',array_values($memberId))
->getQuery()
->getResult()
;
return $membres;
}
这样,您将得到一个包含组中所有用户的一维数组
你的树枝
{% extends '@GroupGroup/Group/groupe_mur_base.html.twig' %}
{% block panel %}
<div class="jumbotron list-content" style="display: block;">
<ul class="list-group">
<li href="#" class="list-group-item title">
Liste des Membres
</li>
{% for m in mem %}
<li href="{{ path('your_path_to_member_details') }}" class="list-group-item text-left" id="listmembre" style="display: block;">
<div class="image">
<img class="img-thumbnail" src="{{ asset(m.profile_pic) }}"/>
<span class="membername">
{{ m.prenom }} {{ m.nom }}
</span>
</div>
<div class="break"></div>
</li>
{% endfor %}
</ul>
<div>
<button id="btnajout" class="btn btn-primary">
Ajouter
</button>
</div>
</div>
{% endblock %}
{%extends'@GroupGroup/Group/groupe\u mur\u base.html.twig%}
{%block panel%}
-
记忆之旅
{mem%中m的%s}
-
{{m.prenom}{{m.nom}}
{%endfor%}
阿约特
{%endblock%}
查看您的代码,您的法语或比利时语似乎是正确的,您应该继续学习如何使用Symfony进行开发您的方法仅返回一个id如何从我从baseI获得的字符串中循环其他id我根据此更新了我的答案。array和ArrayCollection的工作方式似乎有所不同。谢谢,我会尝试此方法。此方法有效,但我仍停留在twig视图中。我无法访问每个array的键。请修改我的答案以包含对您的twig的修改