a 对 Doctrine Query 和 QueryBuilder 有点怀疑。
我曾经在存储库中使用简单的查询,例如:
$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。
谢谢!