【问题标题】:Join query in Symfony 2在 Symfony 2 中加入查询
【发布时间】:2016-06-01 13:06:07
【问题描述】:
我是 Symfony 的新手,我有 2 个实体(不是我创建它们的):
- 第一个实体:test1 (id,test2_id)
- 第二个实体:test2 (id,label)
我想创建从 test where test2.label = 1 中选择的查询。
$Websites = $this->_em
->createQuery("
SELECT w
FROM \Bundle\Entity\test1 t1
JOIN t1.test2 t2
WHERE t2.label=1")
->getResult();
但是我得到了一个错误:
Bundle\Entity\test1 没有名为 test2 的关联
是否有解决方案或其他方法使其发挥作用。
【问题讨论】:
标签:
php
mysql
sql
symfony
【解决方案1】:
试试这个:
$Websites = $this->_em
->createQuery("
SELECT w
FROM \Bundle\Entity\test1 t1
JOIN \Bundle\Entity\test2 t2
WHERE t2.id = t1.test2_id AND t2.label=1")
->getResult();
你也可以使用createQueryBuilder方法
【解决方案2】:
使用 createQueryBuilder 您可以执行以下操作
$labelValue = 1;
/* Get the EntityManager Resource */
$em = $this->getDoctrine->getManager();
$em->getRepository('AppBundle:test1')
->createQueryBuilder('t1')
->select('t1.w') /*Here you can select respective table columns */
->innerJoin('t1.test2_id', 't2')
->where('t2.label = :label') /* if label value coming from external value else ->where('t2.label = 1') and omit next line */
->setParameter('label',$labelValue) /*In case if your label value coming for external value */
->getQuery()
->getResult();