代码之家  ›  专栏  ›  技术社区  ›  C. E.

在CodeIgniter中编写一个要配置的数组?

  •  6
  • C. E.  · 技术社区  · 15 年前

    我正在使用一个我创建的配置文件来存储用户。这肯定不是configs的预期用途,但它是一个非常小的应用程序,我认为这将是一个很好的解决方案。

    我的数组如下:

    $config['users'] = array(array('username' => 'username', 'password' => 'password'));
    

    这很管用。我可以快速轻松地检索信息。但是,如果我尝试将新数组(新用户)写入配置文件,则会出现以下错误: Isset中的偏移量类型非法或为空

    我在用 $this->config->item('users', array('username' =>....)) 似乎不支持数组。

    如何将数组写入配置变量?还有别的办法吗?

    编辑:好的,由于phirschy给出的答案,错误被修正了。我非常确信我可以使用config->item(),以至于没有检查手册中的config->set_item()。但是,它仍然不起作用。具体代码如下:

            $users = $this->config->item('users');
            array_push($users, array('username' => $this->input->post('username'), 'password' => $this->input->post('password')));
            $this->config->set_item('users', json_encode($users));
            echo json_encode($users);
    

    这段代码是通过Ajax调用的,我有一个警告框来查看它的值是否正确。他们是。如您所见,我尝试将其存储为JSON而不是数组。但这也不管用。请帮忙?

    谢谢您

    2 回复  |  直到 13 年前
        1
  •  5
  •   phirschybar    15 年前

    您必须使用“set_item”方法来编写配置项,而不是“item”:

    $this->config->set_item('item_name', 'item_value');
    

    或者在您的情况下:

    $this->config->set_item('users', array(...));
    
        2
  •  0
  •   Madbreaks    13 年前

    老问题,但我也有类似的问题。所以:

    如您所见,我尝试将它存储为JSON而不是数组 好。。。。但这也不管用。

    这应该是第一件告诉你其他事情有问题的事情——JSON只是一个字符串。如果你不能把它储存起来,那就有别的问题了。实际上,您的代码很混乱,有点可疑,您存储的是JSON(一个字符串),但您访问它的方式就像它是一个数组(在任何地方都没有JSON解码)。

    不管怎样,我建议做一个简单的测试:

    $this->config->set_item('the_array', array("I'm", "an", "array"));
    echo 'The config array: '.print_r($this->config->item('the_array'), true);
    

    我在看到你的问题并给出了一个明确的答案后,自己尝试了这个方法——在CodeIgniter 1.7中效果很好。所以答案是,是的,可以将数组存储为配置项。不需要JSON编码。

    干杯

    推荐文章