2016-05-17 1 views
2

がここにここにはCodeIgniterの中でカスタムライブラリファイルにget_instance()を使用する方法を

class Commonlib { 

     public function __construct() 
     {  
       $ci=& get_instance(); 
       $ci->load->database(); 
     } 
      function getcountries(){ 

       return $ci->db->get("countries")->result(); 
      } 
       function cities(){ 
       return $ci->db->get("cities")->result(); 
      } 
    } 

CodeIgniterのでライブラリフォルダ内の私のカスタムクラスであることは私の見解

$results=$this->commonlib->getcountries(); 
    foreach ($results as $row) 
    { 
     echo '<a href="#">'.$row->country .'</a><br>'; 
    } 

エラーが重大です:未定義の変数:ci ライブラリ構築機能でデータベースをロードする方法

+0

'$ ci'の代わりに' $ this-> CI'を試してください – user4419336

+0

なぜあなたはライブラリ内のデータベースを自動ロードして、autoload.phpファイルにある –

答えて

2

次のコードを試してください。いくつかの変更が

class Commonlib { 
    private $ci; 
    public function __construct() 
    {  
      $this -> ci=& get_instance(); 
      $this -> ci->load->database(); 
    } 
     function getcountries(){ 

      return $this -> ci->db->get("countries")->result(); 
     } 
      function cities(){ 
      return $this -> ci->db->get("cities")->result(); 
     } 
} 

注意が提案されている:はあなたの古いコードでのみ、そのメソッド内でスコープを持っています$db__construct()における方法は。そのクラス全体でciオブジェクトをグローバルに取得するには、$thisを使用しました。

+0

さんに感謝しています。 –

+0

@GhulamAbbas、嬉しいです。投票して回答を受け入れてください:)他の人は簡単に答えを見つけることができます – Arun

0

ディレクトリアプリ/ヘルパー/

layout_helper.php

function getcountries() 
{ 

    $CI = & get_instance();  
    return $CI->db->get("countries")->result(); 
} 

、今その機能の使用は、そのようなビューファイル あるにヘルパーを作成するヘルパー

を作成してみてください。

$result = getcountries(); 

foreach ($results as $row) 
{ 
    echo '<a href="#">'.$row->country .'</a><br>'; 
} 
+0

私は都市を持っていますが、$ CI =&get_instance();あなたは100の関数を持っているので、再び100行書き直しますが、ファイル全体に1行で書きたいと思います –

関連する問題