gpt4 book ai didi

symfony - getManager 导致错误,getEntityManager 工作正常吗?

转载 作者:行者123 更新时间:2023-12-04 10:38:51 27 4
gpt4 key购买 nike

作为 Symfony2 和 Doctrine 的新手,我正在为 getEntityManager() 之间的差异而苦苦挣扎(在自定义存储库类中)和 getManager() .

我知道 getEntityManager()正在被弃用,但如果我使用 getManager()相反,我得到“未定义的方法 'getManager'。方法名称必须以 findBy 或 findOneBy 开头!”

在我的类(class)中,以下代码有效:

public function haalidop($verbid)
{
return $this->getEntityManager()
->createQuery('SELECT p FROM myBundle:Verbs p WHERE p.verbid='.$verbid)
->getSingleResult();
}

如果我像下面的代码一样更改(升级?)它,我会收到错误...
public function haalidop($verbid)
{
return $this->getManager()
->createQuery('SELECT p FROM myBundle:Verbs p WHERE p.verbid='.$verbid)
->getSingleResult();
}

任何人有什么建议这里有什么问题?

最佳答案

getEntityManager Registry的方法已弃用。由于您在存储库中,因此您扩展的不是注册表而是 EntityRepository .该类只有一个 getEntityManager方法,不推荐使用。

这种不一致的原因很简单:注册表也用于其他 Doctrine 库,比如它们的 ODM。他们不使用名称“实体”,而是使用“文档”。出于这个原因,使用 getEntityManager对 ODM 没有多大意义,这就是为什么他们将 if 更改为 getManager .
另一方面,EntityRepository -正如它的名字已经告诉我们的 - 是 ORM 特定的,这意味着 ODM 用户不会混淆(他们使用另一个存储库类)。

关于symfony - getManager 导致错误,getEntityManager 工作正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21741476/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com