HMVC模块错误 - 未定义属性:模型

时间:2012-03-17 00:18:24

标签: codeigniter hmvc

所以我收到错误:Undefined property: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();
        }
    }
}
?>

2 个答案:

答案 0 :(得分:2)

啊,修好了!没有意识到主控制器(模块目录外的控制器)也需要扩展“MX_Controller”而不是“CI_Controller”。

答案 1 :(得分: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

更新

您不应该在构造函数中拥有所需的逻辑作为函数。创建一个单独的函数来处理dotpoints的东西。

<?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);
    }
}

此外,您缺少模型中的构造函数。看看我之前发布的链接......