如何将此代码放入库中以进行codeigniter?

时间:2012-04-11 05:30:48

标签: php codeigniter

我有以下代码访问我的数据库中名为settings的表,然后创建一个名为data的数组。目前我有它MY_Controller,但我想将它移动到一个库,所以我可以从模型等访问设置。唯一的问题是每次我尝试我得到一个未定义的索引错误。

public function _settings()
{
    // select all settings from database
    $query = $this->db->query('SELECT * FROM settings');

    // get result from database
    $this->data = $query->result_array();

    foreach($this->data as $setting)
    {
        // create data variable from database variables
        $this->data[$setting['name']] = $setting['value'];
    }

    // simplify access to urls
    $this->data['base_url'] = base_url();
    $this->data['site_url'] = site_url();
    $this->data['template_url'] = base_url('assets/templates/' . $this->data['template']);

    // return array of data
    return $this->data;
}

请帮忙......

1 个答案:

答案 0 :(得分:0)

在库文件夹中创建设置类后,您的代码必须使用&get_instance()来访问codeigniter实例(如下所示)

class settings
{
  public function get_settings()
   {
     $CI = &get_instance();
     $CI->load->model('settings_model','sm');
     return $CI->sm->settings();
   }

}

我的建议是将您的函数名称从_settings更改为settings或类似名称,因为在CI 1.7.X _settings用于私有函数的$this->load->library('settings');不公开一个......

在您的控制器中,您必须使用{{1}}来访问您的库代码..

我希望这会有所帮助