1

モデルまたは autoload.php でデータベース ライブラリを手動で正しくロードできません

$query = $this->db->get('videos'); データベース ライブラリがロードされていないことを示す非オブジェクト エラーでメンバー関数 get()の呼び出しを生成します。

以下のモデルのコンストラクターでコメントアウトされた 2 行を使用してデータベース ライブラリをロードしようとしましたが、どちらもエラーを返します。$this->load->database のコメントを外すと、非オブジェクトエラーでCall to member function database()が発生します。

$this->load->library('database') のコメントを外すと、オブジェクト以外のエラーでCall to member function library()が発生します

<?php 
class Videos_model extends CI_Model {
  public function __construct()
    {
        parent::__construct();
        //$this->load->database();
        //$this->load->library('database');
    }

    public function get_videos() 
    {
           $query = $this->db->get('videos');
    }

}

同じ行$this->load->database(); コントローラーではエラーは発生しませんが、get() 関数エラーが発生します。

class Videos extends CI_Controller {

    public function __construct() {
            parent::__construct();
            $this->load->helper(array('url'));
            $this->load->database();
             //$this->load->library('database');
            $this->load->model('videos_model');
            $this->videos_model->get_videos();           
    }
}

また、構成ファイルに自動ロードを設定しました。

$autoload['libraries'] = array('database');

私の CI ログ ファイルでは、データベース ドライバが初期化されていることが示されています DEBUG - 2013-05-09 15:31:17 --> データベース ドライバ クラスが初期化されました

ここに私のデータベース構成もあります、

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'dbusername';
$db['default']['password'] = 'dbpassword';
$db['default']['database'] = 'dbname';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

aptana studio 3プラグインとphpMyAdmin 3.5.8.1およびApache Server 2.2を使用して、EclipseでCI 2.1.3を使用しています

更新: データベースへのアクセスはコントローラーからは機能しますが、モデルからは機能しないことを確認しました。

4

1 に答える 1

0

答えを見つけました。

このチュートリアルを使用して、Eclipse でオートコンプリートを機能させることができまし。モデル内の model.php データベースへのアクセスが復元されました。

これは、Eclipseでオートコンプリートを機能させる方法に関するより良いチュートリアルですコントローラも同様です)。

于 2013-05-09T13:09:01.967 に答える