Symfony createQueryBuilder联接
我正在尝试从存储库获取我的产品 我有三张桌子: -类别 -包含类别id的类型 -包含类型\u id的产品 My twig视图返回“变量产品不存在” 我的querybuilder出了什么问题? 谢谢 好的,我添加一个屏幕截图 这是我的控制器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
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);