CI get_instance返回null

时间:2015-03-04 12:43:51

标签: codeigniter

我在我的框架中使用CI,并且我不知道此代码的错误是什么

defined('BASEPATH') OR exit('No direct script access allowed');

class RajaOngkir extends CI_Controller {

private $api_key, $base_url;

public function __construct() {
    // Pastikan bahwa PHP mendukung cURL
    if (!$this->is_curl_exists()) {
        log_message('error', 'cURL Class - PHP was not built with cURL enabled. Rebuild PHP with --with-curl to use cURL.');
    }
    $this->_ci=&get_instance();
    var_dump($this->_ci);
    $this->_ci->load->config('rajaongkir', TRUE);
    // Pastikan Anda sudah memasukkan API Key di application/config/rajaongkir.php
    if ($this->_ci->config->item('api_key', 'rajaongkir') == "") {
        log_message("error", "Harap masukkan API KEY Anda di config.");
    } else {
        $this->api_key = $this->_ci->config->item('api_key', 'rajaongkir');
        $this->base_url = $this->_ci->config->item('api_base_url', 'rajaongkir');
    }
}

当我使用网络浏览器访问它时,它给我错误

Severity: Notice

   Message: Trying to get property of non-object

Filename: controllers/rajaongkir.php

Line Number: 22

Fatal error: Call to a member function config() on a non-object in C:\xampp\htdocs\Koen_CI\application\controllers\rajaongkir.php on line 22

我认为错误是我称之为 - > _ci =& get_instance。因为它返回空值。

如何解决?

1 个答案:

答案 0 :(得分:0)

您需要在类中定义_ci变量:

private $api_key, $base_url;

private $api_key, $base_url, $_ci;

但不要这样做。正如评论中提到的其他人一样,如果您在控制器中,只需直接使用$this->something而不是$this->_ci。您只应在CI结构之外使用get_instance()(例如,在帮助文件中)。