【发布时间】:2013-04-02 12:18:48
【问题描述】:
对 Doctrine Query 和 QueryBuilder 有点疑惑。
我曾经在 Repository 中使用简单的查询,例如:
$em = $this->getEntityManager();
$dql = "select X from ApuestaBundle:Apuesta X ORDER BY X.Jornada DESC";
$query = $em->createQuery($dql);
$entity = $query->getResult();
但我必须修改 Sonata Admin 类中的函数“createQuery($context = 'list')”来过滤要显示的实体,并且我必须像这样使用查询生成器:
public function createQuery($context = 'list'){
$query = $this->getModelManager()->createQuery($this->getClass(), 'entity');
$query->select ('e');
$query->from($this->getClass(), 'e');
$query->from('CoreBundle\Entity\Resource', 'r');
$query->where('e.id = r.id AND r.company = :company');
$query->setParameter('company', 1);
return $query;
}
所以,这是我的问题,即使用 Query 或 QueryBuilder 的区别。因为这样,我无法调用Repository的函数来改变Admin Class的createQuery函数。
谢谢!
【问题讨论】:
标签: symfony doctrine query-builder