我有一个文件app/config/template.php
:
$config['head_meta'] = array(
'charset' => 'UTF-8',
'description' => '',
'keywords' => '',
'stylesheets' => array(
'template.css'
),
'scripts' => array(
'plugins/jquery-2.0.3.min.js',
'plugins/bootstrap.min.js'
),
'end_scripts' => array(
'template.js'
)
);
我需要重写 Controller 函数中的描述app/controllers/pages.php
:
function contact($pagename = 'Contact', $slug = 'contact'){
// load dependencies
$this->load->library('form_validation');
$this->lang->load($slug);
// page settings
$this->config->set_item('page_name', $this->lang->line('menu_subtitle_contact'));
$this->config->set_item('page_slug', $slug);
$description = $this->config->item('description', 'head_meta');
var_dump($description);
$data['view'] = $this->load->view($slug, '', TRUE);
$this->load->view('templates/default', $data);
}
我该怎么做?在 CI2 的文档中,有一个覆盖配置值的示例,如下所示: $this->config->set_item('configItem', 'value');
但是如果我的配置项是一个数组,那应该怎么样?我尝试了 $this->config->set_item('description', 'head_meta', 'NewValue');
但它不起作用
感谢您的建议
最佳答案
不幸的是,通过使用 $this->config->set_item('item_name', 'item_value');
,无法更改配置值中的特定数组项。
您可能必须获取当前的配置值,修改它并再次设置:
$this->config->set_item('head_meta', array_merge(
$this->config->item('head_meta'), array('description' => 'newValue')
));
关于php - 如何在 CodeIgniter 的 Controller 内覆盖配置数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047851/