如何使用带有Doctrine的Symfony 3将对象持久保存在控制器之外的数据库中

I am trying to separate data access from my controllers in a Symfony 3 application. Symfony allows Doctrine mediated DB queries to be made via a repository class that extends the EntityRepository class, but I'm having trouble finding a way to persist objects to the DB outside of a class that inherits from the controller base class. Simply put: How can I persist an Entity object to a DB via Doctrine outside of a controller in Symfony?

Thanks for your help.

You have two options ,

Say that the class you want to persist objects with a class named DBManager

  1. Define DBManager as a service and inject doctrine entity manager into this class. This thread may help you
  2. Make DBManger extends ContainerAware, like that you will already have entity manager along with other services like mailer, logger, etc. Take a look at this answer for more details on how to do it