我有一个存储库
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内部服务器错误
答案 0 :(得分:9)
Symfony2代码是命名空间,因此您必须为类NoResultException
添加正确的命名空间,请尝试使用:
catch (\Doctrine\ORM\NoResultException $e)
请注意Doctrine命名空间前面的反斜杠,或使用NoResultException
导入use
类。
答案 1 :(得分:4)
如果您不想在控制器中捕获$q->getOneOrNullResult();
,则可以使用NoResultException
。