我在项目中使用symfony和doctrine。一世 有一些服务来操作数据并将其保存到数据库中。如果我在一个操作中调用2个或更多服务(例如,用于计算和保存某些值和服务以通过电子邮件通知客户端并保存此电子邮件),则将执行多个事务。任务:在服务中保存数据是不好的做法?我应该仅使用服务来操作并在控制器中保存实体吗?
答案 0 :(得分:1)
不,这不是一个坏习惯。
您可以将实体管理器注入您的服务并在服务中执行。
如果您的服务被多次调用,有时您只需要调用控制器中的$em->flush();
,以避免多次调用它。
您也可以使用$em->flush($entity);
刷新服务中的一个实体,其他持久化实体将留在队列中进行最终刷新。