0

我有一个 CodeIgniter 火花定义和自动加载一个类libraries/Nci_nicecontroller.php

class Nci_nicecontroller extends CI_Controller {
  //...
}
//autoloaded using $autoload['libraries'][]='nci_nicecontroller';

现在我想Nci_nicecontroller在我的应用程序的控制器中使用,例如:

class Welcome extends Nci_nicecontroller {
  //...
}
//autoloaded using $autoload['sparks'][]='nci-extensions/0.0.4';

显然,我不能只$this->load->spark在控制器的构造函数中,因为它是类扩展所必需的。

不使用火花时,我只是将 Nci_nicecontroller 放在 a 中core/MY_Controller.php,但是使用火花,这将不起作用。

我尝试在我的应用程序中自动加载火花,但没有成功。

然后我尝试了:

get_instance()->load->spark('nci-extensions/0.0.4');

在 的标题中controllers/welcome.php,这给了我以下错误:

Severity: Notice
Message: Trying to get property of non-object
Filename: controllers/welcome.php
Line Number: 2
    --and--
Fatal error: Call to a member function spark() on a non-object in
 C:\xampp\htdocs\CodeIgniter_demo\application\controllers\welcome.php on line 2

我该怎么办?

4

1 回答 1

0

尝试做这样的事情:

class Wellcome extends CI_Controller {
  protected static $_nci = null;

  public function __construct(){
      parent::__construct();
      $this->_nci = $this->load->spark('nci-extensions/0.0.4');
  }

  public function index(){
      $result = $this->_nci->getSomething();
      echo $result;
  }

}
于 2013-06-24T19:58:46.180 回答