2010-05-28 49 views
1

所以我用笨,以建立一个网站,我将它使我的所有特定设置存储在会自动加载的配置文件。 我还构建了一个加载设置文件的页面,制作一个漂亮的小表格,并允许我编辑该页面中的所有内容,然后再次保存整个页面(我知道我可以对数据库做同样的事情,但我想以这种方式尝试)。笨回报配置文件与自动加载阵列启用

我的问题是,我似乎无法启用我的配置文件的自动加载时使用此位,但是当我禁用自动加载,我似乎无法手动加载它,它永远不会找到我的变量。 所以我在这里做的只是从配置文件中取出所有的值,并将它们放在单个数组中,这样我就可以将这个数组传递到我的设置管理页面(编辑/显示所有设置)。

$this->config->load('site_settings', TRUE); 
$data['settings'] = $this->config->item('site_settings'); 
... 
$this->load->view('template', $data); 

配置/ site_settings.php

<?php 
    if (! defined('BASEPATH')) exit('No direct script access allowed'); 
    $config['header_img'] = './img/header/'; 
    $config['copyright_text'] = 'Copyright Instituto Kabu'; 
    $config['copyright_font'] = './system/fonts/motoroil.ttf'; 
    $config['copyright_font_color'] = 'ffffff'; 
    $config['copyright_font_size'] = '32'; 
+0

什么错误?是$ data ['settings']设置为什么之后?发布你的site_Settings配置,maybes它无效并且不能加载 – Galen 2010-05-28 19:09:29

+0

我没有收到错误,settings数组只是空的(var_dump告诉我这是一个bool(false))。查看我的原始文章的设置文件(在那里添加)。 – Fverswijver 2010-05-28 20:15:02

+0

此外,如果我禁用自动加载,但看到我在这么多位置使用这些变量,禁用自动加载过多的工作,这一切都有效。 – Fverswijver 2010-05-28 20:56:15

回答

0

好吧,我已经找到了解决办法。问题是这个检查内置到配置库​​:

if (in_array($file, $this->is_loaded, TRUE)) 
{ 
    return TRUE; 
} 

所以我用一个额外的参数编辑它看起来像这样:

function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE, $skip_loadedCheck = FALSE) 
    { 
     ... 

       if(!$skip_loadedCheck) { 
        if (in_array($file, $this->is_loaded, TRUE)) 
        { 
          return TRUE; 
        } 
       } 

现在,加载在一个数组我可以将所有数据只是这样做:

$this->config->load('site_settings', TRUE, FALSE, TRUE); 
$data['settings'] = $this->config->item('site_settings'); 
0

是文件内容属实? (检查括号,报价...)

IS的config文件名相同,你请求一个?

0

你不试图获取一个不存在的项目,所以它只是返回FALSE(布尔)?您正尝试加载项目“site_settings”,但在数组索引中没有包含此名称的项目。相反,它应该是,例如,当加载一个单一的项目,$ this-> config-> item('header_img');

与第二参数

此外加载时,每个配置文件将被存储在对应于该配置文件的名称的数组索引。

$ this-> config ['site_settings']。

了解更多关于配置类和它的使用here

+0

从同一页面'如果您使用$ this-> config-> load函数的第二个参数来将您的配置项目分配给特定索引,则可以通过在第二个参数中指定索引名称来检索它$ this-> config-> item()函数' 示例: $ this-> config-> load('blog_settings',TRUE); $ blog_config = $ this-> config-> item('blog_settings'); $ site_name = $ blog_config ['site_name']; 这正是我想要做的,把它放在一个数组中(这里他们使用数组$ blog_config []),这对我有用,但只有当我禁用我的配置页上的自动加载。 – Fverswijver 2010-05-29 00:26:36