我想在我的项目中使用Doctrine ODM,并考虑为每个客户端设置单独的数据库。我希望能够通过我的API在运行时管理客户端。现在我的问题是:
当我设置Doctrine ODM时,我必须在parameters.yml中设置我的数据库设置,但我希望能够在运行时选择数据库。我将拥有一个主数据库,其中包含所有我的装置集合和客户端索引以了解要选择哪个数据库,但特定于客户端的内容将存储在这些客户端数据库中。每个文档类仍将与集合链接,就像在正常情况下一样,但是在不同的数据库中。
是否有办法在运行时为文档类选择数据库?
假设我转到www.myproject.com/client1/item/list 我将列出dbclient1.Items集合中的每个项,如果我转到www.myproject.com/client2/item/list,我将列出dbclient2.Items集合中的所有项。
我希望我已经清楚地阐述了我的要求...我找不到任何关于此的信息,但我认为如果我是第一个有这个问题的人会很奇怪...肯定有人在我之前曾经有过同样的想法对吧?
当我设置Doctrine ODM时,我必须在parameters.yml中设置我的数据库设置,但我希望能够在运行时选择数据库。我将拥有一个主数据库,其中包含所有我的装置集合和客户端索引以了解要选择哪个数据库,但特定于客户端的内容将存储在这些客户端数据库中。每个文档类仍将与集合链接,就像在正常情况下一样,但是在不同的数据库中。
是否有办法在运行时为文档类选择数据库?
假设我转到www.myproject.com/client1/item/list 我将列出dbclient1.Items集合中的每个项,如果我转到www.myproject.com/client2/item/list,我将列出dbclient2.Items集合中的所有项。
我希望我已经清楚地阐述了我的要求...我找不到任何关于此的信息,但我认为如果我是第一个有这个问题的人会很奇怪...肯定有人在我之前曾经有过同样的想法对吧?
$configuration = clone $this->defaultDocumentManager->getConfiguration(); $newDm = DocumentManager::create( $this->defaultDocumentManager->getConnection(), $configuration, $this->defaultDocumentManager->getEventManager() ); $newDm->getConfiguration()->setDefaultDB($databaseName); return $this->instances[$databaseName] = $newDm;
- Seballot