Symfony Doctrine DQL не может найти createQuery в менеджере сущностей - PullRequest
0 голосов
/ 25 апреля 2018

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

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

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

enter image description here

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

enter image description here

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

class UserController extends Controller
{

  /**
   * @Route("/", name="user_list")
   */
  public function indexAction()
  {
      $em = $this->getDoctrine()->getManager();
      $userrs = $em->getRepository("AppBundle:User")->myRepositoryMethod();
      ...
0 голосов
/ 25 апреля 2018

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

use Doctrine\ORM\EntityManager
...