EagleShopBundle中不存在键为“0”的数组的键“catTitle”:global:product.html.twig

时间:2016-01-28 07:31:34

标签: symfony doctrine twig

我正在尝试连接两个表并在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()->getResult();

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

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

<small class="pr_type">{{product.catTitle}}</small>

但是我没有打印'catTitle',而是遇到了这个问题,

  

键中包含“0”的数组的“catTitle”不存在   EagleShopBundle:全球:product.html.twig

1 个答案:

答案 0 :(得分:2)

很简单:getResult()返回一个对象数组,即使只有一个。如果您希望此查询只返回一个对象,请使用getOneOrNullResult()。但在此之后,在显示结果之前,您需要检查是否返回了smth(例如:product instanceof Products)或返回null。