php - 如何在 CodeIgniter 的 Controller 内覆盖配置数组?

标签 php multidimensional-array codeigniter-2

我有一个文件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/

相关文章:

php - 在表单中发布非输入字段?

mysql - CodeIgniter 事件记录;将两个查询合并为一个?

php - 如何在 config.php codeigniter 中覆盖服务器时间

php - 选择具有多个相同项的位置

C语言错误输出...使用二维数组的pascal三角形

java - 我无法在其中输入高于 9 的值

java - 我的矩阵乘法方法有什么问题?

PHP API 脚本速度极慢

php - Yii crud更新错误400

php - 使用 JQuery、PHP 和 MySQL 为实时统计页面优化多个连续的 ajax 调用