我需要的是:
以下是我的dql查询:
$from='Entities\EventOrganizer eo';
$qb = $this->em->createQueryBuilder();
$qb->select('eo.metadata ')
->add('from', $from)
->where('eo.event = '.$this->event->getId())
->andWhere('eo.edition='.$this->event->getEventEdition()->getId())
->andWhere('eo.organizerType=5')
->andwhere("eo.entityType='U'")
->andwhere("eo.published=1")
->orderBy('char_length(eo.metadata)','desc');
$query = $qb->getQuery();
$result = $query->getResult();
echo $query->getSQl();
$this->cache->SaveObject($str, $result);
错误得到:
PHP Fatal error: Uncaught exception 'Doctrine\\ORM\\Query\\QueryException'
with message 'SELECT eo.metadata FROM Entities\\EventOrganizer eo WHERE eo.event
= 127632 AND eo.edition=10 AND eo.organizerType=5 AND eo.entityType='U' AND
eo.published=1 ORDER BY length(eo.metadata) desc' in /home/ind/public_html/serve-bizt-
com/application/libraries/Doctrine/ORM/Query/QueryException.
发布于 2014-09-02 10:37:21
您要寻找的函数是
LENGTH()
对于您的查询,它会像这样工作
$from='Entities\EventOrganizer eo';
$qb = $this->em->createQueryBuilder();
$qb->select('eo.metadata, LENGTH(eo.metadata) AS HIDDEN len')
->add('from', $from)
->where('eo.event = '.$this->event->getId())
->andWhere('eo.edition='.$this->event->getEventEdition()->getId())
->andWhere('eo.organizerType=5')
->andwhere("eo.entityType='U'")
->andwhere("eo.published=1")
->orderBy('len','desc');
$query = $qb->getQuery();
$result = $query->getResult();
echo $query->getSQl();
$this->cache->SaveObject($str, $result);
如果不想解析结果,隐藏是很重要的;)
但是尝试在EO存储库中实现一个更好的查询
$query_builder = $this->createQueryBuilder('eo')
->select('eo.metadata, LENGTH(eo.metadata) AS HIDDEN len')
->where('eo.event = :event_id')
->andWhere('eo.edition = :event_edition_id')
->andWhere('eo.organizerType=5')
->andwhere("eo.entityType='U'")
->andwhere("eo.published=1")
->orderBy('len','desc')
->setParameter('event_id', $this->event->getId())
->setParameter('event_edition_id',$this->event->getEventEdition()->getId();
$result = $query_builder->getQuery()->getResult();
http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html#dql-functions
https://stackoverflow.com/questions/25619200
复制相似问题