У меня есть репозиторий
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 в контроллере.