ZF2如何在控制器中获取卸载的配置文件?

时间:2015-05-29 21:15:10

标签: zend-framework2 multiple-databases on-the-fly

中心
我的应用程序由许多代理商划分,每个代理商都有自己的数据库和数据库配置文件。

登录前,用户需要向我发送agency-id。在该请求中,ZF2加载非代理db configutarion文件(带有SQLite数据库信息)以验证agency-id是否确实存在。

下一个请求是agency-specific-url,因此ZF2会加载该机构的特定数据库配置文件。

问题
在我验证之后的第一个请求(验证agency-id)中,我需要加载代理商的特定数据库以获取一些信息并将其返回。

我在考虑在我的controller中加载“已卸载的代理商数据库配置文件”,以使用包含该代理商数据库的model来实例化DbAdapter信息,但我找不到办法。

我该怎么办?还是有另外一种方式?也许我应该在ZF2的init之前加载每个代理配置文件,但我不知道这是否是最好的解决方案。

1 个答案:

答案 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...