中心
我的应用程序由许多代理商划分,每个代理商都有自己的数据库和数据库配置文件。
登录前,用户需要向我发送agency-id
。在该请求中,ZF2加载非代理db configutarion文件(带有SQLite数据库信息)以验证agency-id
是否确实存在。
下一个请求是agency-specific-url
,因此ZF2会加载该机构的特定数据库配置文件。
问题
在我验证之后的第一个请求(验证agency-id
)中,我需要加载代理商的特定数据库以获取一些信息并将其返回。
我在考虑在我的controller
中加载“已卸载的代理商数据库配置文件”,以使用包含该代理商数据库的model
来实例化DbAdapter
信息,但我找不到办法。
我该怎么办?还是有另外一种方式?也许我应该在ZF2的init之前加载每个代理配置文件,但我不知道这是否是最好的解决方案。
答案 0 :(得分:0)
为了解决这个问题,我创建了一个可以返回代理商信息的操作。 在代理商ID验证操作中,创建上述操作的请求并获得它的响应:
// Create request to get agency's info
$client = new Client();
$request = new Request();
$request->setMethod(Request::METHOD_GET);
$explicitUrl = 'http://example.com/any/action';
$request->setUri($explicitUrl);
$response = $client->send($request);
// The any/action route points to an action that return JSON data
$json = JsonDecoder::decode($response->getBody());
// Now I can do whatenever I want
$json->variable1...
$json->variable2...
$json->variable3...