php – 在codeigniter中获取错误

我在我的codeigniter应用程序中自动加载了一个名为’render’的库.
该库的完整代码是:

class Render extends CI_Controller {
    public function template($template, $view, $extra_css, $extra_js) {
        $data = array();
        if (isset($view)) {
            $data['view'] = $view;
        }
        if (isset($extra_css)) {
            $data['extra_css'] = $extra_css;
        }
        if (isset($extra_js)) {
            $data['extra_js'] = $extra_js;
        }
        $template = $this->load->view("templates/$template", $data, TRUE);
        echo $template;
    }

}

这个库工作正常但问题是每当我手动加载这个库或通过编辑自动加载文件时,我在我的任何控制器中加载任何模型时都会出错.

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Home::$my_model_name

Filename: controllers/home.PHP

Line Number: 11

这里第10行和第11行是:

$this->load->model('my_model_name');
$this->my_model_name->my_model_method();

我也尝试使用:

$this->load->model('my_model_name', 'My_model');
$this->My_model->my_model_method();

我的控制器“home”代码是:

class Home extends CI_Controller {
    function __construct() {
        parent::__construct();
    }
    public function index()
    {
        $this->load->model('my_model_name');
        $this->my_model_name->index();
    }
}

我试图将__construct()方法添加到我的库中,但仍然没有运气.

解决方法:

通过做

class Render extends CI_Controller

你不是在创建一个库,而是一个控制器!要创建库,只需创建类并将其放入库文件夹即可.

在您的库中,如果您想使用CI的加载器来加载模型,例如,您需要实例化主CI类.

$CI = & get_instance();

类似的东西(文件application / libraries / render.PHP):

    class Render {

      var $CI;

      function __construct()
      {
        $this->CI = &get_instance();
      }

       public function template($template, $view, $extra_css, $extra_js) {
        $data = array();
        if (isset($view)) {
            $data['view'] = $view;
        }
        if (isset($extra_css)) {
            $data['extra_css'] = $extra_css;
        }
        if (isset($extra_js)) {
            $data['extra_js'] = $extra_js;
        }
        $template = $this->CI->load->view("templates/$template", $data, TRUE);
        return $template;
    }
}

然后你可以$CI->在你的库,模型,其他库中加载你想要的所有东西.
有关详细说明,请参见Utilize CI resource within your library.你用通常的方式调用你的库,$this-> load-> library(‘render’)然后$this-> render-> whatever();

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...