Привет, ребята У меня проблема с одним запросом. Я создаю приложение на Symfony 2.7, и я хочу сделать запрос в репозитории, но когда я делаю это, вы получите исключение:Symfony DQL-запрос в репозитории
Неопределенный метод 'getDoctrine'. Имя метода должно начинаться с findBy или findOneBy!
Вот код в Repository:
namespace George\ObjectsBundle\Entity;
/**
* ObjectRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class ObjectRepository extends \Doctrine\ORM\EntityRepository
{
public function getOggallery()
{
$em = $this->getDoctrine()->getManager();
$query = $this->createQuery("SELECT o, a FROM George\ObjectsBundle\Entity\Object o JOIN o.ogallery a WHERE a.ord = 0");
$objects = $query->getResult();
return $objects;
}
}
Но когда я возвращаю код в методе контроллера он работает.
$query = $em->createQuery("SELECT o, a FROM George\ObjectsBundle\Entity\Object o JOIN o.galleries a WHERE a.ord = 0");
$objects = $query->getResult();
Почему этот код не работает с администратором Doctrine Entity в репозитории?
Благодарим вас, что это работает! :) –
'$ em' вообще не требуется ... Он уже привязан к QueryBuilder – mblaettermann
Это действительно необходимо, потому что EntityRepository не имеет метода createQuery, это делает EntityManager. Таким образом, пример должен читать $ em-> createQuery (...); или даже $ this -> _ em-> createQuery (...); –