0

有人可以帮助我,我是 CI 的新手,我不知道我做错了什么。

我有这种控制器

主要的

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

class main extends CI_Controller {
 public function index() {
     $this->home();
 }

 public function home() {
    $this->load->helper('url');
    $this->load->model("get_db");
    $data['results']=$this->get_db->getAll();
    $this->load->view("view_home", $data);
 }
}

get_db像这样的模型

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class get_db extends CI_Model {
        public function getAll() {
        $query=$this->db->query("SELECT * from tekstovi");
        return $query->result();
    }
}

我得到了这样的奇怪错误

**A PHP Error was encountered
Severity: Notice
Message: Undefined property: main::$db
Filename: core/Model.php
Line Number: 51**

知道要纠正什么吗?

4

3 回答 3

1
// Location: application/controllers/main.php
class Main extends CI_Controller {

    public function index() { 

        $this->home();

    }

    public function home() { 

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

        $data['results'] = $this->home_model->getAll();

        $this->load->view("view_home", $data);

    }
}

// Location: application/models/home_model.php
class Home_model extends CI_Model {

public function getAll() {

        $query=$this->db->query("SELECT * from tekstovi");

        return $query->result();

    }

}

如果您查看CodeIgniter 的用户指南,我认为这对您很有帮助。

编辑:如果你做对了这些事情并且你仍然有问题,请确保核心文件没有被修改。如果是,您可以重新安装应用程序(下载和更新文件),一切正常。

于 2013-06-12T12:03:36.457 回答
1

您需要将 __construct() 添加到您的控制器和模型中。试试下面的。

你的控制器

class main extends CI_Controller 
{
    function __construct()
    {
        parent::__construct();
    }

public function index() 
{
     $this->home();
}

public function home() 
{
    $this->load->helper('url');
    $this->load->model("get_db");
    $data['results']=$this->get_db->getAll();
    $this->load->view("view_home", $data);
   }

 }

你的模型。

class Get_db extends CI_Model
{
    function __construct()
    {
    parent::__construct();

    }

    // here is your code
    public function getAll() {
        $query=$this->db->query("SELECT * from tekstovi");
        return $query->result();
    }
}
于 2013-06-12T12:50:12.203 回答
0

正如@nevermind 所指出的,您需要更正类的命名。

类名的第一个字母必须大写,其余部分小写。确保您的类扩展了基础模型类。

文件名将是您的类名的小写版本。

我看到的下一个问题是您的模型中没有构造函数。将以下代码添加到您的模型中。

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

您的模型的功能没有问题public

于 2013-06-12T13:12:58.883 回答