我不知道该怎么做
我在 Symfony2 中创建了一个服务,我需要这个服务使用请求和原则 entitymanager 服务
在 services.yml 我添加这些行:
logdb:
class: %logdb.class%
arguments: ['@doctrine.orm.entity_manager','@request_injector']
我的服务等级:
class LogDB {
protected $em;
protected $request;
public function __construct(EntityManager $em, Request $request){
$this->em= $em;
$this->request= $request;
}
public function saveLog(){
}
}
好吧,在 saveLog() 中,我需要访问 entitymanager,但来自不同的默认管理器,我的意思是我注入的实体管理器是默认的 '@doctrine.orm.entity_manager'。
在控制器中,我可以这样做:
$em = $this->getDoctrine()->getManager($this->getRequest()->get('shop'));
我为每家商店使用不同的数据库,我通过 url 参数选择。问题是,我如何从服务访问自定义实体管理器?
注射容器是一个不好的解决方案......
也许我需要在我不知道的控制器的每个服务方法中将 entitymanager 作为参数传递