【发布时间】:2013-10-24 20:11:49
【问题描述】:
我创建了一些额外的方法来帮助管理 Symfony2 项目中的实体。我希望这些方法可以在 Doctrine 的 EntityManager 上使用,它是从具有“doctrine.orm.entity_manager”键的容器中获取的。
我找到了this post,并尝试实现它,但它不起作用。我收到一条错误消息,上面写着The attribute "name" must be set for path "doctrine.orm.entity_managers".
这是一篇较旧的帖子,因此它可能是某种从那时起已被弃用的“技巧”;我正在使用 Symfony2 和 Doctrine 的最新稳定版本。
有没有办法覆盖 Doctrine 用来创建它的默认 EntityManager 的类,还是我必须像另一个服务一样创建并使用它?
【问题讨论】:
-
你这样做有什么意义?
-
我刚刚添加了一些辅助方法,例如处理更大的实体组以持久化。例如,我有一个方法,它接受多个实体,将它们持久化,然后在操作结束时运行刷新。它们不是大的变化,而是在我开始构建其他东西时可以节省时间的小东西。
-
您为什么不创建另一个以
EntityManager作为构造函数参数的类,并处理您需要的方法呢? -
这是可能的,但最方便的是覆盖,真正扩展,无论 Doctrine 使用什么类。这样,某人只需获得“doctrine.orm.entity_manager”服务并可以访问这些附加方法,而不必使用其他类或服务来完成。
标签: symfony orm doctrine extend entitymanager