Symfony2:获取实体内部的服务



有没有办法在实体内部调用服务

我需要实体内的实体管理器,以便我能够使用存储库函数获得自定义结果。

我正在考虑像这样在我的实体中注入容器接口。

use SymfonyComponentDependencyInjectionContainerInterface;
class MyEntity
{
    protected $container;
    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }
    public function getEntityManager(){
        return $this->container->get('doctrine')->getEntityManager();
    }
} 

但我认为这不是正确的方法,它需要更多的代码,我的意思是我必须对所有需要实体管理器的实体执行此操作

有什么好的解决方案吗?

我不知道

你是否可以,但无论如何你都不应该这样做。这些实体本来就非常简单...

实体内部需要实体管理器,以便我能够使用存储库功能获得自定义结果

你到底想做什么,一定有不同的解决方案......

如前所述,依赖注入绝对是错误的方式。

将自定义实体存储库 (http://symfony.com/doc/2.0/book/doctrine.html#custom-repository-classes) 用于更复杂的查询,或使用特定服务,如果需要更复杂的查询,可以在其中实现自定义结果 (http://symfony.com/doc/2.0/book/service_container.html#referencing-injecting-services)

相关内容

  • 没有找到相关文章

最新更新