Key" productTitle"对于带有键的数组" 0,catTitle"在EagleShopBundle中不存在:global:product.html.twig

时间:2016-01-28 08:17:14

标签: symfony doctrine twig

我试图加入两个表并在树枝模板中打印一个值,但我遇到了这个问题。

这是我的控制器操作。

/**
     * @Route("products/display/{id}")
     * @Template()
     */
    public function displayAction($id) {

        $em = $this->container->get('doctrine.orm.entity_manager');
        $qb = $em->createQueryBuilder();

        $qb->select('p, pc.catTitle')
                ->from('EagleShopBundle:Products', 'p')
                ->leftJoin('EagleShopBundle:ProductCategory', 'pc', \Doctrine\ORM\Query\Expr\Join::WITH, 'pc.id = p.category')
                ->where($qb->expr()->eq('p.id', '?5'))
                ->setParameter(5, $id);

        $product = $qb->getQuery()->getOneOrNullResult();

        return $this->render("EagleShopBundle:global:product.html.twig", array(
                    'product' => $product,
                    'image_path' => '/bundles/eagleshop/images/'
        ));
    }

这是与问题相关的我的twig文件行,

<h1>{{product.productTitle}}</h1>

我猜问题与这一行有关

  

$ qb-&gt;选择(&#39; p,pc.cat标题&#39;)

这是我得到的错误,

  

Key&#34; productTitle&#34;对于带有键的数组&#34; 0,catTitle&#34;在...中不存在   EagleShopBundle:全球:product.html.twig

1 个答案:

答案 0 :(得分:1)

您可以尝试下一个查询:

$qb->select('p, partial pc.{id, catTitle}') 
                // if you need full productCategory object then write just 'p, pc'
            ->from('EagleShopBundle:Products', 'p')
            ->leftJoin('p.category', 'pc') 
               //productCategory is the field 
               //in product entity which has relation to product category entity, 
               //paste your field (not column!) name here 
               //if it is not productCategory
            ->where('p.id = :productId')
            ->setParameter('productId', $id);

P.S。
最好将查询移动到实体存储库:)
P.P.S.
Doctrine partial objects
UPD
修复了查询 - 使用正确的字段名称