繁体   English   中英

CodeIgniter - 在视图中访问 $config 变量

[英]CodeIgniter - accessing $config variable in view

我经常需要在视图中访问$config变量。 我知道我可以将它们从控制器传递到load->view() 但明确地这样做似乎有些过分。

有什么方法或技巧可以从 CI 视图访问$config变量而不用备用代码干扰控制器吗?

$this->config->item()工作正常。

例如,如果配置文件包含$config['foo'] = 'bar'; 然后$this->config->item('foo') == 'bar'

此外,通用函数config_item()在整个 CodeIgniter 实例中几乎无处不在。 控制器、模型、视图、库、助手、钩子等等。

你可以这样做:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');

$this->config->item('config_var')不适用于我的情况。

我只能使用config_item('config_var'); 在视图中回显变量

你的控制器应该从数据库、配置等收集所有信息。有很多很好的理由坚持这一点。 一个很好的理由是,这将允许您非常轻松地更改该信息的来源,而不必对您的视图进行任何更改。

我就是这样做的。 在 config.php

$config['HTML_TITLE'] = "SO TITLE test";

在applications/view/header.php(假设为html代码)

<title><?=$this->config->item("HTML_TITLE");?> </title>

标题示例

echo $this->config->config['ur config file'] 

如果您的配置文件也出现在图片中,您必须像这样访问例如我在配置文件夹中包含一个 app.php 我有一个变量

$config['50001'] = "your  message"   

现在我想访问我的控制器或模型。

尝试以下两种情况,一种应该有效

情况1:

$msg = $this->config->item('ur config file');

echo $msg['50001'];    //out put:  "your message";

案例2:

 $msg = $this->config->item('50001');

 echo $msg;    //out put:  "your message"

每当我需要访问配置变量时,我倾向于使用: $this->config->config['variable_name'];

$config['cricket'] = 'bat'; 在 config.php 文件中

$this->config->item('cricket')在视图中使用这个

如果您尝试将配置变量访问到控制器而不是使用

$this->config->item('{variable name which you define into config}');

如果您尝试将 config 变量访问到控制器外部(helper/hooks),则使用

$mms = get_instance();  
$mms->config->item('{variable which you define into config}');

例如,如果您有:

$config['base_url'] = 'www.example.com'

然后在你的config.php 中设置

echo base_url();

这几乎在每个地方都非常有效。
/* 编辑 */
这可能适用于最新版本的 codeigniter(4 及更高版本)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM