php codeigniter:调用未定义的方法CI_Loader :: model()

时间:2014-02-08 21:20:22

标签: php codeigniter model

我想使用codeigniter制作一个web应用程序,但是我已经使用它了一段时间,每当我尝试在控制器中加载模型时,我都会收到错误。我可能做了一些愚蠢的错误,但我无法弄清楚它是什么。如果可以,请帮助我。

这是我得到的错误:

error

以下是我的模型的代码:

<?php 

class post_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    function getAllPosts() {
        $this->db->order_by('date', 'desc');
        $query = $this->db->get('post');
        return $query->result();
    }
}
?>

以下是我加载模型的控制器代码:

<?php 

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

class Post extends CI_Controller {

    public function __construct() {
        parent::__construct();

        $this->load->model('post_model');
    }

    public function index() {
        $data['title'] = 'Berichten';
        $data['posts'] = $this->post_model->getAllPosts();

        $this->template->load('posts', $data);
    }
}

自动加载:

$autoload['helper'] = array('url', 'form', 'date');
$autoload['model'] = array();

解决了:我无法解决这个问题,但是我制作了一个新项目并复制粘贴了我的代码,现在它工作得很好,所以不知道出了什么问题。

4 个答案:

答案 0 :(得分:3)

所有类在第一个字母时应为大写

class Post_model extends CI_Model {

这会在第11行加载模型时抛出错误

答案 1 :(得分:0)

class post_model extends CI_Model {

    function __construct() {
        parent::__construct();
        $this->load->database();//加上这句
    }

    function getAllPosts() {
        $this->db->order_by('date', 'desc');
        $query = $this->db->get('post');
        return $query->result();
    }
}

答案 2 :(得分:0)

我认为您的模型文件扩展名.html ...更改了文件扩展名.php ... 正确:model_file.php 不正确:model_file.html

检查您的文件格式。

答案 3 :(得分:0)

类名必须以大写字母开头,文件名必须与该类的名称相同,扩展名为.php 同时从模型中删除关闭的php标记.codeigniter类文件不需要任何关闭标记。它将由框架自动关闭。