php - 使用 .env 配置 codeigniter 对我不起作用
问题描述
我正在尝试使用 .env 在 codeigniter 中配置 solr 端点。我执行以下操作:
- 我创建了一个配置类 SolrConfigEndpoints
namespace Config;
use CodeIgniter\Config\BaseConfig;
class SolrConfigEndpoints extends BaseConfig
{
public $ptv = array(
'endpoint' => array(
'localhost' => array(
'scheme' => 'http', # or https
'host' => '127.0.0.1',
'port' => 8983,
'path' => '/',
'core' => 'course_catalog',
)
)
);
}
- 我将 .env 中的值配置如下:
#--------------------------------------------------------------------
# SOLR
#--------------------------------------------------------------------
Config\SolrConfigEndpoints.ptv.endpoint.localhost.host='localhost'
Config\SolrConfigEndpoints.ptv.endpoint.localhost.port=8983
Config\SolrConfigEndpoints.ptv.endpoint.localhost.path='/'
Config\SolrConfigEndpoints.ptv.endpoint.localhost.core='ptv'
- 在我的模型中,我尝试访问 .env 数据
$config = getenv();
d($config); // something like a var_dump
并且 SolrConfigEndpoints 变量不存在。
解决方案
我认为您正在尝试从 SolrConfigEndpoints 获取配置,因此您必须首先创建一个这样的实例:$config = config('SolrConfigEndpoints');
然后您可以$config
像访问普通对象一样访问对象的属性。这里的想法是使配置在项目的任何地方都可以轻松使用。
而已声明的 .env 属性只是为了替换配置中定义的原始属性。访问任何环境变量。你必须使用getenv('key_name')
.
参考:https ://codeigniter4.github.io/userguide/general/configuration.html?highlight=baseconfig
推荐阅读
- kotlin - Dagger 2 @Provides 不能应用于 Kotlin 中的静态函数?
- java - 在 JavaFx 中实现倒数计时器时遇到问题
- django - 如何覆盖下拉列表中的默认值
- java - 将 Substring 值与 Substring 的 ArrayList String 进行比较
- android - 我试图获取 EditText 值
- javascript - 在 Stackblitz 上使用 HttpClient 读取 data.json?
- sockets - 当服务器基于 iocp 时,我是否需要让客户端支持 iocp?
- c# - 如何在没有 VS 的情况下使 Mac OS 上的 VS 控制台应用程序可运行?
- docker - Kubernetes 不显示节点
- java - 如何查看 Java 编译器的内容