我有一个存储库
class TurnoRepository extends EntityRepository
{
public function findTurnoActivo()
{
$q = $this
->createQueryBuilder('t')
->where('t.activo = :activo')
->setParameter('activo', true)
->getQuery();
return $q->getSingleResult();
}
}
这个方法抛出一个NoResultException,但如果我试图在我的控制器中捕获
private function obtenerTurno()
{
$em = $this->getDoctrine()->getEntityManager();
$turno = null;
try {
$turnoActivo = $em->getRepository('MyBundle:Turno')->findTurnoActivo();
} catch (NoResultException $e) {
return false;
}
return $turno;
}
我总是在我的页面上得到500内部服务器错误
Symfony2代码是按名称空间命名的,因此您必须为类NoResultException
添加正确的名称空间,请尝试使用:
catch ('Doctrine'ORM'NoResultException $e)
注意Doctrine名称空间前面的反斜杠,或者使用use
导入NoResultException
类。
如果不想在控制器中捕获NoResultException
,则可以使用$q->getOneOrNullResult();
。