我试图加入两个表并在树枝模板中打印一个值,但我遇到了这个问题。
这是我的控制器操作。
/**
* @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
答案 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 强>
修复了查询 - 使用正确的字段名称