1

だから私はエラーを取得しています: 未定義のプロパティ: Badge_progress::$bp_model.

何が起こっているのかわかりません。これが私のコードです:

コントローラ:

<?php
// Badge Progress Module

class badge_progress extends CI_Controller 
{
    function __construct()
    {
        parent::__construct();

        $this->load->model('bp_model');

        $data['dotpoints'] = $this->bp_model->dotpoints('1');
        $this->load->view('bp_view', $data);
    }
}

?>

モデル:

<?php
class bp_model extends CI_Model {

    function dotpoints($badge_id) {
        $query = $this->db->query("SELECT * FROM course_topic_dotpoints WHERE badge_id = ".$badge_id);

        if ($query->num_rows() > 0) {
            return $query->result();
        }
    }
}
?>
4

2 に答える 2

2

あ、直した!メイン コントローラー (モジュール ディレクトリ外のコントローラー) も「CI_Controller」ではなく「MX_Controller」を拡張する必要があることに気付きませんでした。

于 2012-03-17T10:43:29.750 に答える
0

クラス名は大文字で始める必要があります。

class Badge_progress extends...

class Bp_model extends...

http://codeigniter.com/user_guide/general/controllers.html

http://codeigniter.com/user_guide/general/models.html

アップデート:

必要なロジックをコンストラクターの関数として持つべきではありません。ドットポイントのものを処理する別の関数を作成します。

<?php
// Badge Progress Module

class Badge_progress extends CI_Controller 
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('bp_model');

    }

    function dotpoints()
    {
        $data['dotpoints'] = $this->bp_model->dotpoints('1');
        $this->load->view('bp_view', $data);
    }
}

また、モデルにコンストラクターがありません。以前に投稿したリンクをチェックしてください...

于 2012-03-17T01:18:25.500 に答える