Codeigniter自定义库加载错误

时间:2015-11-15 13:37:38

标签: php codeigniter codeigniter-3

我的自定义库未通过自动加载或通过手动代码加载。我查看了this oneDocumentation

库/ Faq.php

if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Faq {
    public function __construct(){
        $this->load->model('Faq_model');
    }
    public function recentFaqs(){
        return $this->Faq_model->getFaqs();
    }
}
  

加载了库$ this-> load->库(' faq');

     

将其功能称为$ this-> faq-> recentFaqs();

我收到以下错误 遇到PHP错误

  

严重性:注意

     

消息:未定义属性:Faq :: $ faq

     

文件名:controllers / Faq.php

     

行号:17

1 个答案:

答案 0 :(得分:2)

问题可能是因为您的构造函数正在尝试使用$this加载模型。但是$this需要是对CodeIgniter的引用。因此,您需要在加载模型之前获取CodeIgniter引用。

class Faq {
  public $CI;

  public function __construct(){
   $this->CI = & get_instance();
   $this->CI->load->model('Faq_model');
  }

  public function recentFaqs(){
    return $this->Faq_model->getFaqs();
  }
}

对CI $this->CI的引用应该在此类的任何函数中使用,该函数将调用codeigniter类。通过将其保存为类的属性,可以轻松重用。