2012-07-31 76 views
2

我自动加载磁带库site_model已经在自动加载的配置,这是我得到的错误:

A PHP Error was encountered 

Severity: Notice 

Message: Undefined property: Site::$Site_model 

Filename: controllers/site.php 

Line Number: 16 

Fatal error: Call to a member function add_record() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/BLOCK/application/controllers/site.php on line 16 

控制器:

<?php 
class Site extends CI_Controller { 

function index(){ 

    $this->load->view('option_view'); 
} 

function create(){ 

    $data = array(
     'subject' => $this->input->post('subject'), 
     'body' => $this->input->post('body') 
    ); 

    $this->Site_model->add_record($data); 
    $this->index(); 

} 

} 


?> 

模型:

<?php 

class Site_model extends CI_Model { 

function get_records() 

{ 
    $query = $this->db->get('items'); 
    return $query->result(); 
} 

function add_record() 
{ 
    $this->db->insert('items', $data); 
    $return; 
} 

function update_record() 
{ 
    $this->db->where('id', 1); 
    $this->db->update('items', $data); 

} 

function delete_record() 
{ 
    $this->db->where('id', $this->url->segment(3)); 
    $this->db->delete('items'); 

} 

} 





?> 

和视图:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

<title>option_view</title> 
<style type="text/css" media="screen"> 
label {display:block;} 
</style> 
</head> 

<body> 
<h2>Create</h2> 
<?php echo form_open('site/create'); ?> 

<p> 
    </label for="subject">Subject</label> 
    <input type="text" name="subject" id="subject"> 
</p> 

<p> 
    </label for="body">Body</label> 
    <input type="text" name="body" id="body"> 
</p> 
<p> 
<input type="submit" value="Submit">  
</p> 
<?php echo form_close();?> 
</body> 
</html> 

你们认为什么?

非常感谢

+0

负荷模型。 – 2012-07-31 19:36:31

+0

[codeigniter site_model严重性:注意错误此行有什么问题?](http://stackoverflow.com/questions/11729649/codeigniter-site-model-severity-notice-error-what-is-wrong-与此线) – 2012-07-31 19:43:32

回答

5
$this->load->model('Site_model'); # <- add this 
$this->Site_model->add_record($data); 
+0

谢谢我已经在配置中自动加载模型,但失去了大写字母! – user1250526 2012-07-31 19:45:27

3

你的代码是好的....但你forgotted只有简单的thing.You forgotted在你的控制器给下面的 “__construct()”

$this->load->model('your modelname'); 

这它很好地定义了。

1

添加构造函数。然后它将有助于调用模型。

<?php 
class some_controller extends CI_Controller{ 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('site_model'); 

    } 
    function index() 
    { 
     $this->load->view('your_view'); 
    } 
    function create() 
    { 
     $data = array(
      'test1' => $this->input->post('test1'), 
      'test2' => $this->input->post('test2') 
      ); 
     $this->site_model->add($data); 
     $this->index(); 
    } 

}