我在这个框架上与symfony3和im初学者一起从事项目
这是我的问题
我在数据库中有一个名为groupe的表,在我有一个称为member的列中,我已在该组中存储了成员的ID
table database
在第一步中,我想从分组表中获取这些ID,然后将其爆炸以将查询发送到我的数据库,以获取nom,prenom和与该ID相对应的配置文件图片发送
所以我在存储库中做了两个动作
这是我在存储库中的第一个操作,它允许我从数据库中的表成员中获取ID字符串
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();
}
这是我存储库中的seccond函数,它使我可以从先前的字符串中提取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>
这就是我的数据出现在模板中的方式,我想为它们设置样式,并为li列表中的每个用户(如下面的模板)仅获取3个项目my template
最佳答案
您可以在一个查询中完成所有操作
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 %}
查看您的代码,看来您的法语或比利时语,您应该继续OpenClassrooms Symfony Tutoriel学习如何使用Symfony进行开发
关于php - 如何从返回3维数组并在symfony 3的 Twig View 中设置值的查询中获取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42071611/