我和Symfony2一起工作。我必须列出实体OpeEntetes的最后一个OpeEntetes实体。下面的脚本给出了错误:
区块报价
原则\ORM\Query\QueryException第0行,col 16在“ALL”附近(从中选择: Error: Class‘ALL“未定义。
区块报价
该怎么办?
public function essai1($nbOpe){
$in = $this->_em->createQueryBuilder()
->from('GcRequetesBundle:OpeEntetes','ein')
->orderBy('ein.oeNumOpe', 'DESC')
->setMaxResults($nbOpe);
$qb = $this->_em->createQueryBuilder();
$qb
-> add("select",new Expr\Select(array('res')))
-> add('from', new Expr\From($qb -> expr()-> all($in -> getDql()), 'res'));
$query = $qb -> getQuery();
$result= $query -> getArrayResult();
return $result;
}发布于 2015-07-14 12:25:49
代码中有几个错误:
无论如何,子查询不支持setMaxLimits的限制可能意味着您根本无法以这种方式构建代码。如果这不适合您,那么您可以使用下面的代码进行尝试(最简单的方法是只进行一次查询,但我假设您有理由分两个步骤.):
$in = $em->createQueryBuilder()
->select('ein')
->from('GcRequetesBundle:OpeEntetes','ein')
->orderBy('ein.oeNumOpe', 'DESC')
->setMaxResults($nbOpe); // this does not affect the result at all
$qb = $em->createQueryBuilder();
$qb->add('select', 'ein2');
$qb->add('from', 'GcRequetesBundle:OpeEntetes ein2');
$qb->add('where', $qb->expr()->eq('ein2.id', $qb->expr()->any($in->getDql())));
$query = $qb -> getQuery();
$result= $query -> getArrayResult();
return $result;https://stackoverflow.com/questions/31400893
复制相似问题