我已经在Elasticsearch,Logstash,Kibana上安装了yii2。除与YII2进行交互外,该设置运行良好。
以下是./config/db.php
的内容
<?php
return [
'components' => [
'db' => [
'class' => 'yii\elasticsearch\Connection',
'user' => 'admin',
'password' => 'admin',
'nodes' => [ ['http_address' => '127.0.0.1:9200'],
// configure more hosts if you have a cluster
],
],
]
];
此配置无法正常工作,下面是错误的第一行。
Invalid Configuration – yii\base\InvalidConfigException
The configuration for the "db" component must contain a "class" element.
- in /var/www/hostings/yiiphp/tools/vendor/yiisoft/yii2/di/ServiceLocator.php
.....
我无法找到相关信息来解决此问题。我究竟做错了什么 ?
最佳答案
文件./config/db.php
应该包含在主配置文件中,在您的情况下,文件名为web
(似乎您正在使用基本应用模板)
换句话说-查看文件./config/web.php
然后找到以下行:'db' => ...
并将其替换为'db' => require(__DIR__ . '/db.php'),
最后,您的db.php
应该像这样:
<?php
return [
'class' => 'yii\elasticsearch\Connection',
'user' => 'admin',
'password' => 'admin',
'nodes' => [ ['http_address' => '127.0.0.1:9200'] ]
];
您也想将
elastic
组件用作数据库组件,这对我来说似乎很奇怪,但是,这取决于您。
关于php - YII2 Elasticsearch数据库配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32728406/