Symfony createQueryBuilder联接

Symfony createQueryBuilder联接,symfony,doctrine-orm,Symfony,Doctrine Orm,我正在尝试从存储库获取我的产品 我有三张桌子: -类别 -包含类别id的类型 -包含类型\u id的产品 My twig视图返回“变量产品不存在” 我的querybuilder出了什么问题? 谢谢 好的,我添加一个屏幕截图 这是我的控制器 public function categorieAction($categorie) { $em = $this->getDoctrine()->getManager(); $produits = $em->getRepo

我正在尝试从存储库获取我的产品 我有三张桌子: -类别 -包含类别id的类型 -包含类型\u id的产品

My twig视图返回“变量产品不存在” 我的querybuilder出了什么问题? 谢谢

好的,我添加一个屏幕截图

这是我的控制器

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
    ));
}

这是我的twig视图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>
    {produits%中的produit的%s}
  • 缩略标签 100,00欧元

  • {%endfor%}

很抱歉,我无法发表评论,但您应该将您的小树枝文件提供给我们,它可能会对我们有所帮助。此外,我认为这不会改变任何事情,但我会这样编写查询:

$this->createQueryBuilder('p')
        ->select('p, t')
        ->join('p.type', 't')
        ->where('t.categorie = :categorie')
        ->orderBy('p.id')
        ->setParameter('categorie', $categorie);
编辑:查看您的屏幕截图,您似乎是从错误的控制器操作渲染视图。您有一个操作名为
categorieAction
,另一个操作(似乎是错误的)名为
produitsAction
。您应该为这两个操作创建不同的路由,以避免冲突。

对,谢谢--在路由中调用了错误的方法,并且我已在渲染中擦除了数组:array('produits'=>$produits));$em=$this->getDoctrine()->getManager()$produits=$em->getRepository('GbaBundle:produits')->findAll();
$this->createQueryBuilder('p')
        ->select('p, t')
        ->join('p.type', 't')
        ->where('t.categorie = :categorie')
        ->orderBy('p.id')
        ->setParameter('categorie', $categorie);