在 \Doctrine\Common\Persistence 中找不到方法 getconnection

methode getconnection not found in \Doctrine\Common\Persistence

我正在学习有关 Symfony 4 的教程,我们希望在其中创建原始查询。这是教程中提供的代码:

public function index(Request $request)
{
    $entityManager = $this->getDoctrine()->getManager();

    $conn = $entityManager->getConnection();
    $sql = '
    SELECT * FROM user u
    WHERE u.id > :id
    ';
    $stmt = $conn->prepare($sql);
    $stmt->execute(['id' => 3]);

   //more code 
    }

但是当我尝试做同样的事情时,getconnection 方法似乎无法被我的 IDE 识别,它给了我这个消息:

methode getconnection not found in \Doctrine\Common\Persistence\ObjectManager

关于我应该做什么有什么想法吗?我会感激的。

因为它不是真正的错误,而是更多的静态分析结果,您可以尝试关闭使用的静态分析工具(不确定是哪个),您可以在获取实体管理器时执行此操作:

/** @var \Doctrine\ORM\EntityManagerInterface $entityManager */
$entityManager = $this->getDoctrine()->getManager();

如果静态分析工具有任何好处,它会接受 comment/hint 并认清实体管理器的真实面目,并且可能会停止抱怨。

(我问自己的问题:是否有理由使用纯 SQL 而不是......你知道......实体管理器,比如...... $user = $entityManager->find(User::class, 3); ......除非您的用户出于某种原因不是实体)