gpt4 book ai didi

symfony - 如何在实体内部使用 entityManager?

转载 作者:行者123 更新时间:2023-12-04 23:06:28 27 4
gpt4 key购买 nike

我在实体类中有这个函数,但 getDoctrine 不喜欢......

public function getObject()
{
$em = $this->getDoctrine()->getEntityManager();

switch($this->objectType)
{
case 'video':
return $em->getRepository('fdj2012AdminBundle:Video')->find($this->objectId);
break;
case 'default':
return false;
break;
}
}

如何在我的 Entity 中使用 entityManager ?

最佳答案

实际上 Entity 不应该知道 EM。如果我的实体需要高级逻辑,我会使用事件监听器。当您注册监听器之类的服务时,您可以在那里传递参数,例如 EM 或容器,并将它们放入监听器类中。

Symfony Doc

但我知道在 Entity 类中获取 EM 并不是什么好方法。通过在实体方法中采用全局变量 Kernel。

global $kernel;
if ( 'AppCache' == get_class($kernel) )
{
$kernel = $kernel->getKernel();
}
$em = $kernel->getContainer()->get( 'doctrine.orm.entity_manager' );

为我感到羞耻:(

关于symfony - 如何在实体内部使用 entityManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079509/

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