在li3中设置多个连接时,没有适配器集异常


No adapter set exception when setting multiple connections in li3

我正试图在li3项目中设置多个连接,但当我这样做时,我会遇到一个未捕获的异常。我在app/coni/bootstrap/connections.php文件中设置了连接,然后由bootstrap.php文件加载。以下是我的人脉:

 Connections::add('default', array(
    'development' => array(
            'type' => 'MongoDb',
            'host' => 'localhost',
            'database' => 'web_app'
    ),
    'test' => array(
        'type' => 'MongoDb',
        'host' => 'localhost',
        'database' => 'test_web_app'
    )
)
);

当我把它设置成这样,并试图浏览到我的项目时,我得到了这个错误:

 Fatal error: Uncaught exception 'lithium'core'ConfigException' with message 'No adapter set for configuration in class `lithium'data'Connections`.' in /var/www/site/libraries/lithium/core/Adaptable.php:233

然而,当我只有一个默认连接设置时,它可以正常工作。其他人遇到过这个问题吗?

--更新--我查看了异常的堆栈跟踪,发现问题是由我在文件app/config/bootstrap/user.php中设置的过滤器引起的,该过滤器随后由bootstrap.php 加载

以下是我的user.php文件:

use app'models'Users;
use lithium'security'Password;
Users::applyFilter('save', function($self, $params, $chain) {
if ($params['data']) {
    $params['entity']->set($params['data']);
    $params['data'] = array();
}
if (!$params['entity']->exists()) {
    $params['entity']->password = Password::hash($params['entity']->password);
}
return $chain->next($self, $params, $chain);
});

根据堆栈跟踪,错误来自该文件的第21行。第21行的唯一内容是});所以我仍然不确定为什么这会导致一个错误。

我似乎被Li3的简单身份验证用户教程误导了。在他们的教程中,它让你在引导目录中创建一个user.php文件,并在这个文件中有过滤器逻辑(正是我所拥有的)。然而,这似乎不是最好的方法,尤其是当使用多个连接时,因为它会抛出上面的异常。我已经将过滤逻辑移到了app/models/Users.php中的Users模型文件中,不再得到异常。这与Gavin Davies在他的Li3认证示例中使用的设置类型相同。