У меня есть репозиторий
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
, поэтому вам нужно добавить правильное пространство имен для класса NoResultException
, попробуйте использовать:
catch (\Doctrine\ORM\NoResultException $e)
Обратите внимание на обратную косую черту перед пространством имен Doctrine или импортируйте класс NoResultException
с помощью use
.
Вы можете использовать $q->getOneOrNullResult();
если вы не хотите поймать NoResultException
в контроллере.