0

私はCodeigniterの初心者です。の自動ロードに 3 つのライブラリがありconfig.phpます。

しかし、私のコントローラの 1 つで、ライブラリをロードしたくありません。これは可能ですか?

4

3 に答える 3

6

アプリケーション全体でライブラリが必要な場合は、構成ファイルにロードすることができ、自動的にロードされます。ただし、特定のコントローラーでのみライブラリが必要な場合は、必要なコントローラーにライブラリをロードできます。

Class test Extends CI_Controller{

    function index()
    {
        $this->load->library('mylibrary');
        $this->mylibrary->somemethod();    
    }

}

または、コントローラー全体でライブラリが必要な場合は、コンストラクターにロードできます。

Class test Extends CI_Controller{

    function __construct()
    {
       parent::__construct();
         $this->load->library('mylibrary');
    }

    function index(){
         $this->mylibrary->somemethod();    
    }
    function test(){
         $this->mylibrary->someothermethod();    
    }

}
于 2012-12-25T16:30:56.140 に答える
2

ライブラリで CI_Controller を拡張します。

このようなもの:

class MyLibrary extends CI_Controller {
    var $ci;

    function __construct() {

      $this->ci = &get_instance();
      $route = $this->ci->router->fetch_class();

      if( $route == strtolower('YourController') ) return false;
    }
}
于 2013-05-08T15:13:10.747 に答える
0

自動ロードファイルからライブラリを削除できます。そうすれば、それらはフレームワークでアクティブになりません。それらを使用したい場合、クラスでそれらを使用したい場合は、コンストラクターでそれらを呼び出すことができます。それらをメソッドだけで使用する場合は、メソッドにロードします。

于 2012-12-25T16:12:00.637 に答える