Symfony Doctrine DQL не может найти createQuery в менеджере сущностей

Я изучаю веб-разработку с Symfony уже некоторое время. Я следовал учебному руководству на веб-сайте Symfony и учебному пособию по Doctrine и пытался использовать диспетчер сущностей в Doctrine ORM для создания запросов, но автозаполнение PhpStorm говорит мне, что он не может найти createquery(), (см. скриншот ниже)

введите описание изображения здесь

введите описание изображения здесь

2 ответа

Решение

Согласно вашему скриншоту (getRepository, flush, persist...) есть методы $ this-> getDoctrine () -> getManager (), которые вы можете найти в любом классе контроллера Symfony:

То, что вы хотите использовать, это $this->getEntityManager()->createQuery(), который вы можете найти в классе репозитория symfony:

Поэтому правильный способ сделать это - создать репозиторий и добавить в него свой метод, а затем использовать этот метод внутри вашего контроллера:

class UserController extends Controller
{

  /**
   * @Route("/", name="user_list")
   */
  public function indexAction()
  {
      $em = $this->getDoctrine()->getManager();
      $userrs = $em->getRepository("AppBundle:User")->myRepositoryMethod();
      ...

Вы уверены, что включили следующее заявление об использовании

use Doctrine\ORM\EntityManager
Другие вопросы по тегам