2013-06-12 43 views
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); 
} 
} 

而且这样

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

模型get_db我得到这个奇怪的错误像这样

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

有什么想法纠正?

+2

类名必须带有大写字母的第一个字母,其余的名称必须小写。确保你的类扩展了基类模型类。 http://ellislab.com/codeigniter/user-guide/general/models.html相同的控制器:http://ellislab.com/codeigniter/user-guide/general/controllers.html – sinisake

+0

更改,仍然相同的错误 –

+0

删除您的模型函数/函数 – Derfder

回答

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(); 
    } 
} 
+0

现在这种错误无法加载所需的文件:帮手/ _helper.php –

+0

伟大的工程就像一个魅力:) –

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's User Guide这将是对你非常有帮助。

编辑:如果您正在做这些事情并且仍然存在问题,请确保核心文件未被修改。如果是这样,你可以重新安装应用程序(下载和更新文件),一切都应该工作。

0

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

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

文件名将是您的班级名称的小写版本。

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

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

没有与模型的功能是public没有问题。