2016-04-28 10 views
0

私はcodeigniterの初心者であり、読み込まれたカスタムライブラリを作成しようとしています。私は 'check_login'というコントローラでウェブサイトを起動するようにCIを設定しました。このファイルの 内容は以下のとおりです。codeigniterカスタムライブラリがロードされない

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Check_login extends CI_Controller { 
    public function __construct(){ 
     parent::__construct(); 
     $this->load->library('check_login'); 
    } 

    function index(){ 
     $this->check_login->checker(); 
    } 
} 

図書館check_loginは「CI/application/libraries/に入れて、次のスクリプトが含まれている:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Check_Login { 
    public function cheker(){ 
     //$CI =& get_instance(); 
     $is_logged_in = $this->session->userdata('is_logged_in'); 
     if(!isset($is_logged_in) || $is_logged_in != true){ 
      $this->load->view('welcome_message'); 
     }  
    } 

} 

私も$CI =& get_instance();代わりの$thisを使用してみましたが、また、ライブラリの名前をautoload configファイルに追加して、動作するかどうか確認してみました。ブラウザに表示される結果は、次のようになります。 The Output in image ライブラリが読み込まれない原因と、$ thisの代わりにget_instance();を使用する必要がある場合を知りたいと思います。事前にどうもありがとうございました。

+0

私は以下のリンクも見ましたが、私は何も理解できません:http://stackoverflow.com/questions/20250061/codeigniter-custom-library-not-loading – Tower

+0

ライブラリからライブラリのビューを読み込むことができません$ is_logged_inを返すだけで、あなたのコントローラーの場合はこれを使用してください。 –

+0

これが役立つかもしれませんが、コントローラとライブラリが同じ名前を共有しているかどうかわかりません。コントローラ名を変更しようとしましたか?これらのクラスをロードしようとするとシステムを混乱させる可能性があります。 –

答えて

0

私はPHPについてほとんど知りません。変数に値を代入せずにライブラリを呼び出していた。ただ、Check_loginまたは小文字で、他の何かに自分のクラス名を変更 $q = $this->check_login->checker();echo $q;

0

:したがって、コントローラの指数関数の中で私がにコマンドを変更する必要があります。あなたのライブラリーのように、あなたの関数名はなぜ$ CI = & get_instance()cheker()

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Check_login { 
    public function __construct() 
    { 
     $CI =& get_instance(); 
    } 
    public function cheker() 
    { 
     $is_logged_in = $this->session->userdata('is_logged_in'); 
     if(!isset($is_logged_in) || $is_logged_in != true){ 
      $this->load->view('welcome_message'); 
    }  
} 

ある場合、あなたは$this->check_login->checker();を呼び出しています。 参照によって割り当てを行うと、オリジナルのCodeIgniterオブジェクトを使用することができます。

関連する問題