Symfony Doctrine DQL在实体管理器中找不到createQuery

时间:2018-04-25 04:00:36

标签: php symfony phpstorm doctrine-query

我已经和Symfony一起学习网络开发已有一段时间了。 我正在关注Symfony的websiteDoctrine tutorial上的教程,并试图在Doctrine ORM中使用实体管理器来创建查询,但是PhpStorm的自动完成告诉我它不能&#39 ;找到createquery()。 (见下面的截图)

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

您确定已包含以下使用声明

use Doctrine\ORM\EntityManager

答案 1 :(得分:1)

根据你的截图(getRepository,flush,persist ...) $ this-> getDoctrine() - > getManager()的方法,你可以在任何symfony 控制器类上找到:

enter image description here

您要使用的是 $ this-> getEntityManager() - > createQuery(),您可以在symfony 存储库类中找到它:

enter image description here

所以正确的方法是创建一个Repository并将你的方法添加到它中,然后在你的控制器中使用这个方法:

class UserController extends Controller
{

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