以下代码现在在我的生产服务器上运行良好。但现在突然抛出QueryException。
Fatal error: Uncaught exception 'Doctrine\ORM\Query\QueryException' with message 'SELECT c, m, u, t FROM Invetico\ContentBundle\Entity\Serminar c LEFT JOIN c.menu m LEFT JOIN c.user u LEFT JOIN c.term t WHERE t.slug = :slug AND c.status = :status ORDER BY c.datePublished DESC' in /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:41
奇怪的是我的开发机器没有任何反应。没有致命错误。
以下是代码
private function getContentQuery($contentType = '')
{
$qb = $this->_em->createQueryBuilder();
$class = ($contentType !='')?$contentType:'Invetico\ContentBundle\Entity\Content';
$qb->select('c','m','u','t')
->from($class, 'c')
->leftJoin('c.menu','m')
->leftJoin('c.user', 'u')
->leftJoin('c.term', 't');
return $qb;
}
public function findContentTypeByTerm($contentType, $term, $limit)
{
$qb = $this->getContentQuery($contentType)
->where('t.slug = :slug')
->andWhere('c.status = :status')
->orderBy('c.datePublished', 'DESC')
->setParameter('slug',$term)
->setParameter('status',1)
->setFirstResult(0)
->setMaxResults($limit);
return $qb->getQuery()->getResult();
}
public function buildTermWidget(WidgetInterface $widget)
{
$view = $this->createView($widget);
$view->collection = $this->contentRepository->findContentTypeByTerm($widget->getContentType(), $widget->getTerm(), $widget->getRecordLimit());
return $view;
}
我不知道生产和开发上的不同版本的mysql服务器是否导致了这个问题。
开发机器:Linux Ubuntu,Xampp - Mysql 5.6.14 - 源代码分发
生产机器:Linux CentOS - Mysql 5.5.36-cll-lve - MySQL社区服务器(GPL)
我无法访问生产服务器。
[编辑]下面的错误消息
Fatal error: Uncaught exception 'Doctrine\ORM\Query\QueryException' with message 'SELECT c, m, u, t FROM Invetico\ContentBundle\Entity\Serminar c LEFT JOIN c.menu m LEFT JOIN c.user u LEFT JOIN c.term t WHERE t.slug = :slug AND c.status = :status ORDER BY c.datePublished DESC' in /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:41
Stack trace:
#0 /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(483): Doctrine\ORM\Query\QueryException::dqlError('SELECT c, m, u,...')
#1 /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(1042): Doctrine\ORM\Query\Parser->semanticalError('Class Invetico\...')
#2 /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(1688): Doctrine\ORM\Query\Parser->JoinAssociationPathExpression()
#3 /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(1628): Doctrine\ORM\Query\Parser->JoinAssociationDeclaration()
#4 /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(1558): Doctr in /home/zibaconsult/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php on line 63