Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从返回三维数组并在symfony 3中的细枝视图上设置值的查询中获取数据_Php_Mysql_Symfony - Fatal编程技术网

Php 如何从返回三维数组并在symfony 3中的细枝视图上设置值的查询中获取数据

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

我正在与symfony3合作一个项目,我是这个框架的初学者 这是我的问题 我在数据库中有一个名为groupe的表,其中有一个名为member的列,我在其中存储了该组中成员的id

在第一步中,我想从groupe表中获取这些id,然后分解它们,将查询发送到我的数据库,以获取与发送的id对应的nom、prenoman和profile pic 因此,我在我的存储库中做了两个动作

这是我在存储库中的第一个操作,它允许我从数据库的membre表中获取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();

} 
这是我的存储库中的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的修改