2017-09-02 91 views
0

我试图让自己的产品从仓库 我有3个表: - 类 - 类型包含categorie_id - PRODUITS包含types_idSymfony的createQueryBuilder JOIN

我的树枝视图返回“可变PRODUITS不存在“ 我的查询生成器出了什么问题? 感谢

class ProduitsRepository extends \Doctrine\ORM\EntityRepository { 

    public function byCategorie($categorie) { 
     $qb = $this->createQueryBuilder('p') 
       ->select('p') // Entity Produits 
       ->join('p.type', 't') 
       ->addSelect('t') // Entity Types 
       ->where('p.type = t.id AND t.categorie = :categorie') 
       ->orderBy('p.id') 
       ->setParameter('categorie', $categorie); 

     return $qb->getQuery()->getResult();  
    } 
} 

好的我加截图 enter image description here

这是我的控制器

public function categorieAction($categorie) 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $produits = $em->getRepository('GbaBundle:Produits')->byCategorie($categorie); 


    return $this->render('GbaBundle:Default:produits/layout/produits.html.twig', array(
     'produits' => $produits 
    )); 
} 

这是我的看法枝produits.html.twig

<ul class="thumbnails"> 
      {% for produit in produits %} 
      <li class="span3"> 
       <div class="thumbnail"> 
        <img src="{{ asset('img/holder.png') }}" alt="" width="300" height="300"> 
        <div class="caption"> 
         <h4>Thumbnail label</h4> 
         <p>100,00 €</p> 

         <a class="btn btn-primary" href="{{ path('gba_presentation') }}">Plus d'infos</a> 

         <a class="btn btn-success" href="{{ path('gba_panier') }}">Ajouter au panier</a> 
        </div> 
       </div> 
      </li> 
       {% endfor %} 
      </ul> 

回答

0

对不起,我不能发表评论,但你应该给我们你的树枝文件,它可能会帮助我们。另外,我不认为这会改变什么,但我会写这样的查询:

$this->createQueryBuilder('p') 
     ->select('p, t') 
     ->join('p.type', 't') 
     ->where('t.categorie = :categorie') 
     ->orderBy('p.id') 
     ->setParameter('categorie', $categorie); 

编辑:看你的截图,好像你正在呈现从错误的控制器动作视图。你有一个叫做categorieAction的动作和另一个叫做produitsAction的动作(似乎是错误的动作)。你应该为这两个行动制定不同的路线以避免碰撞。

+0

好的我添加了截图和代码 – wildnano

+0

@wildnano我编辑了我的答案。 –

+0

右谢谢 - 在我的路由中调用了坏方法,并且在我的render:array('produits'=> $ produits))中删除了数组。和$ em = $ this-> getDoctrine() - > getManager(); ('GbaBundle:Produits') - > findAll(); – wildnano