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 を に配置するだけですが、火花を使用する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 に答える